{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# CPSC 330 Lecture 2"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Lecture outline\n",
    "\n",
    "- Wave hello\n",
    "- **!! Turn on recording !!**\n",
    "- Announcements (5 min)\n",
    "- Cilantro dataset (5 min)\n",
    "- Decision trees (30 min)\n",
    "- Break (5 min)\n",
    "- True/False questions (15 min)\n",
    "- ML model parameters and hyperparameters (5 min)\n",
    "- Overfitting (15 min)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Learning objectives\n",
    "\n",
    "- Explain how a decision tree classifier makes predictions\n",
    "- Interpret a diagram of a decision tree \n",
    "- Interpret a decision boundary plot for datasets with 2 numeric features (like the cilantro dataset)\n",
    "- Appropriately use `fit`, `predict`, and `score` in scikit-learn\n",
    "- Explain the `max_depth` hyperparameter of `DecisionTreeClasifier`\n",
    "- Explain the scenario in which a `DecisionTreeClassifier` with `max_depth=None` would not get 100% training accuracy\n",
    "- Distinguish between parameters and hyperparameters."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import pandas as pd\n",
    "import matplotlib.pyplot as plt\n",
    "plt.rcParams['font.size'] = 16\n",
    "\n",
    "from sklearn.tree import DecisionTreeClassifier\n",
    "from sklearn.dummy import DummyClassifier\n",
    "\n",
    "from plot_classifier import plot_classifier"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "import re\n",
    "import graphviz\n",
    "from sklearn.tree import export_graphviz\n",
    "\n",
    "def display_tree(feature_names, tree):\n",
    "    \"\"\" For binary classification only \"\"\"\n",
    "    dot = export_graphviz(tree, out_file=None, feature_names=feature_names, class_names=tree.classes_.astype(str), impurity=False)\n",
    "    # adapted from https://stackoverflow.com/questions/44821349/python-graphviz-remove-legend-on-nodes-of-decisiontreeclassifier\n",
    "    dot = re.sub('(\\\\\\\\nsamples = [0-9]+)(\\\\\\\\nvalue = \\[[0-9]+, [0-9]+\\])(\\\\\\\\nclass = [A-Za-z0-9]+)', '', dot)\n",
    "    dot = re.sub(     '(samples = [0-9]+)(\\\\\\\\nvalue = \\[[0-9]+, [0-9]+\\])\\\\\\\\n', '', dot)\n",
    "    return graphviz.Source(dot)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Announcements (5 min)\n",
    "\n",
    "- hw1 due tonight at 11:59pm\n",
    "- hw2 will be released tomorrow, due Monday 11:59pm\n",
    "  - See [here](https://github.com/UBC-CS/cpsc330/blob/master/docs/homework_instructions.md#groups) for instructions on working with a partner.\n",
    "  - You are free to work alone or with a partner.\n",
    "- On the usual schedule, hw will be due Mondays and released Tuesdays\n",
    "- My evening office hour moved from Wed to Thu \n",
    "  - Note I have 30 min morning OH and 30 min evening OH.\n",
    "- Update on the plan for the final exam:\n",
    "  - We will **not** have a regular 2.5 hour exam in the regular way.\n",
    "  - There will be a take-home, with a mix of coding and conceptual questions.\n",
    "  - The time window will be 24-48 hours (exact time window TBD).\n",
    "  - Open book.\n",
    "- Update on the plan for the midterm:\n",
    "  - We'll do it on Canvas during class time on Oct 22.\n",
    "  - This will be the one time you'll need to operate in the middle of the night if you're in a far time zone (sorry).\n",
    "  - Probably open book.\n",
    "- Please monitor Piazza (especially pinned posts and instructor posts) for announcements.\n",
    "- Sorry for the setup difficulties."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Cilantro dataset (5 min)\n",
    "\n",
    "Here's the dataset you generated last class!"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>What percentage of days do you typically eat meat or fish?</th>\n",
       "      <th>What percentage grade do you expect to get in this course?</th>\n",
       "      <th>Do you like cilantro?</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>42.0</td>\n",
       "      <td>90</td>\n",
       "      <td>Yes</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>85.0</td>\n",
       "      <td>83</td>\n",
       "      <td>No</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>28.0</td>\n",
       "      <td>83</td>\n",
       "      <td>Yes</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>100.0</td>\n",
       "      <td>80</td>\n",
       "      <td>No</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>100.0</td>\n",
       "      <td>75</td>\n",
       "      <td>No</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   What percentage of days do you typically eat meat or fish?  \\\n",
       "0                                               42.0            \n",
       "1                                               85.0            \n",
       "2                                               28.0            \n",
       "3                                              100.0            \n",
       "4                                              100.0            \n",
       "\n",
       "   What percentage grade do you expect to get in this course?  \\\n",
       "0                                                 90            \n",
       "1                                                 83            \n",
       "2                                                 83            \n",
       "3                                                 80            \n",
       "4                                                 75            \n",
       "\n",
       "  Do you like cilantro?  \n",
       "0                   Yes  \n",
       "1                    No  \n",
       "2                   Yes  \n",
       "3                    No  \n",
       "4                    No  "
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df = pd.read_csv('data/330-students-cilantro.csv')\n",
    "df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>meat</th>\n",
       "      <th>grade</th>\n",
       "      <th>cilantro</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>42.0</td>\n",
       "      <td>90</td>\n",
       "      <td>Yes</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>85.0</td>\n",
       "      <td>83</td>\n",
       "      <td>No</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>28.0</td>\n",
       "      <td>83</td>\n",
       "      <td>Yes</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>100.0</td>\n",
       "      <td>80</td>\n",
       "      <td>No</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>100.0</td>\n",
       "      <td>75</td>\n",
       "      <td>No</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "    meat  grade cilantro\n",
       "0   42.0     90      Yes\n",
       "1   85.0     83       No\n",
       "2   28.0     83      Yes\n",
       "3  100.0     80       No\n",
       "4  100.0     75       No"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.columns = [\"meat\", \"grade\", \"cilantro\"]\n",
    "df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>meat</th>\n",
       "      <th>grade</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>count</th>\n",
       "      <td>200.000000</td>\n",
       "      <td>200.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>mean</th>\n",
       "      <td>72.812850</td>\n",
       "      <td>83.440000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>std</th>\n",
       "      <td>31.605226</td>\n",
       "      <td>8.633603</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>min</th>\n",
       "      <td>0.000000</td>\n",
       "      <td>4.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25%</th>\n",
       "      <td>50.000000</td>\n",
       "      <td>80.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>50%</th>\n",
       "      <td>86.000000</td>\n",
       "      <td>85.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>75%</th>\n",
       "      <td>100.000000</td>\n",
       "      <td>90.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>max</th>\n",
       "      <td>100.000000</td>\n",
       "      <td>100.000000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "             meat       grade\n",
       "count  200.000000  200.000000\n",
       "mean    72.812850   83.440000\n",
       "std     31.605226    8.633603\n",
       "min      0.000000    4.000000\n",
       "25%     50.000000   80.000000\n",
       "50%     86.000000   85.000000\n",
       "75%    100.000000   90.000000\n",
       "max    100.000000  100.000000"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.describe()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 74,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "scatter = plt.scatter(df[\"meat\"], df[\"grade\"], c=df[\"cilantro\"]==\"Yes\", cmap=plt.cm.coolwarm);\n",
    "plt.xlabel(\"Meat consumption (% days)\");\n",
    "plt.ylabel(\"Expected grade (%)\");\n",
    "plt.legend(scatter.legend_elements()[0], [\"No\", \"Yes\"]);"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 72,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0x7fd7298c5b20>,\n",
       " <matplotlib.lines.Line2D at 0x7fd7298c5dc0>]"
      ]
     },
     "execution_count": 72,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "scatter.legend_elements()[0]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Can you find yourself on this plot?!"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Yes    144\n",
       "No      56\n",
       "Name: cilantro, dtype: int64"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df[\"cilantro\"].value_counts()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>meat</th>\n",
       "      <th>grade</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>42.0</td>\n",
       "      <td>90</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>85.0</td>\n",
       "      <td>83</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>28.0</td>\n",
       "      <td>83</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>100.0</td>\n",
       "      <td>80</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>100.0</td>\n",
       "      <td>75</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "    meat  grade\n",
       "0   42.0     90\n",
       "1   85.0     83\n",
       "2   28.0     83\n",
       "3  100.0     80\n",
       "4  100.0     75"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "X = df[[\"meat\", \"grade\"]]\n",
    "X.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0    Yes\n",
       "1     No\n",
       "2    Yes\n",
       "3     No\n",
       "4     No\n",
       "Name: cilantro, dtype: object"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y = df[\"cilantro\"]\n",
    "y.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [],
   "source": [
    "dc = DummyClassifier(strategy=\"prior\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.72"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "dc.fit(X, y)\n",
    "dc.score(X, y)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Yes    0.72\n",
       "No     0.28\n",
       "Name: cilantro, dtype: float64"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y.value_counts()/len(y)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Decision trees (20 min)\n",
    "\n",
    "- Our first approach to supervised learning: **decision trees**.\n",
    "- Basic idea: ask a bunch of yes/no questions until you end up at a prediction.\n",
    "- E.g. for our cilantro dataset,\n",
    "  - If you eat meat <5% of the time, predict \"Yes\"\n",
    "  - Otherwise, if you eat meat >95% of the time, predict \"No\"\n",
    "  - Otherwise, if you expect to fail the course, predict \"No\"\n",
    "  - Otherwise, predict \"Yes\""
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "- This \"series of questions\" approach can be drawn as a tree:\n",
    "\n",
    "```\n",
    "            Eats meat <5% of the time\n",
    "            /          \\\n",
    "           / True       \\  False\n",
    "          /              \\\n",
    "         Yes           Eats meat >95% of the time\n",
    "                        /      \\\n",
    "                  True /        \\ False\n",
    "                      /          \\ \n",
    "                    No         Expects to fail the course (<50%)\n",
    "                                 /           \\\n",
    "                                / True        \\ False\n",
    "                               /               \\\n",
    "                              No              Yes\n",
    "```"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "- The decision tree algorithm automatically learns a tree like this, based on the data set!\n",
    "  - We won't go through **how** it does this - that's CPSC 340.\n",
    "  - But it's worth noting that it support two types of inputs:\n",
    "\n",
    "1. Categorical (e.g., Yes/No or more options)\n",
    "2. Numeric (a number)\n",
    "\n",
    "In the numeric case, the decision tree algorithm also picks the _threshold_ (e.g. 5%, 50%, etc.)\n",
    "\n",
    "In our case here, both features are numeric."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Let's apply a decision tree to our cilantro dataset."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [],
   "source": [
    "tree1 = DecisionTreeClassifier(max_depth=1)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "- Here, we create a `DecisionTreeClassifier` object from scikit-learn.\n",
    "- We pass in parameters - these are called **hyperparameters** - in this case `max_depth=1` which means the tree can only have depth 1.\n",
    "- Next we fit to the data using `.fit()`.\n",
    "- The semicolon is just cosmetic, otherwise some junk gets printed out."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [],
   "source": [
    "tree1.fit(X, y);"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/svg+xml": [
       "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
       "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
       " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
       "<!-- Generated by graphviz version 2.40.1 (20161225.0304)\n",
       " -->\n",
       "<!-- Title: Tree Pages: 1 -->\n",
       "<svg width=\"186pt\" height=\"116pt\"\n",
       " viewBox=\"0.00 0.00 186.00 116.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
       "<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 112)\">\n",
       "<title>Tree</title>\n",
       "<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-112 182,-112 182,4 -4,4\"/>\n",
       "<!-- 0 -->\n",
       "<g id=\"node1\" class=\"node\">\n",
       "<title>0</title>\n",
       "<polygon fill=\"none\" stroke=\"#000000\" points=\"134.5,-108 43.5,-108 43.5,-72 134.5,-72 134.5,-108\"/>\n",
       "<text text-anchor=\"middle\" x=\"89\" y=\"-86.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">meat &lt;= 99.5</text>\n",
       "</g>\n",
       "<!-- 1 -->\n",
       "<g id=\"node2\" class=\"node\">\n",
       "<title>1</title>\n",
       "<polygon fill=\"none\" stroke=\"#000000\" points=\"80,-36 0,-36 0,0 80,0 80,-36\"/>\n",
       "<text text-anchor=\"middle\" x=\"40\" y=\"-14.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">class = Yes</text>\n",
       "</g>\n",
       "<!-- 0&#45;&gt;1 -->\n",
       "<g id=\"edge1\" class=\"edge\">\n",
       "<title>0&#45;&gt;1</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M76.6352,-71.8314C71.0491,-63.6232 64.337,-53.7606 58.1928,-44.7323\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"61.051,-42.7112 52.5313,-36.4133 55.264,-46.6496 61.051,-42.7112\"/>\n",
       "<text text-anchor=\"middle\" x=\"47.8628\" y=\"-57.2735\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">True</text>\n",
       "</g>\n",
       "<!-- 2 -->\n",
       "<g id=\"node3\" class=\"node\">\n",
       "<title>2</title>\n",
       "<polygon fill=\"none\" stroke=\"#000000\" points=\"178,-36 98,-36 98,0 178,0 178,-36\"/>\n",
       "<text text-anchor=\"middle\" x=\"138\" y=\"-14.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">class = Yes</text>\n",
       "</g>\n",
       "<!-- 0&#45;&gt;2 -->\n",
       "<g id=\"edge2\" class=\"edge\">\n",
       "<title>0&#45;&gt;2</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M101.3648,-71.8314C106.9509,-63.6232 113.663,-53.7606 119.8072,-44.7323\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"122.736,-46.6496 125.4687,-36.4133 116.949,-42.7112 122.736,-46.6496\"/>\n",
       "<text text-anchor=\"middle\" x=\"130.1372\" y=\"-57.2735\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">False</text>\n",
       "</g>\n",
       "</g>\n",
       "</svg>\n"
      ],
      "text/plain": [
       "<graphviz.files.Source at 0x7fd728e44f10>"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "display_tree(df.columns[:-1], tree1)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "- This is a totally useless decision tree that predicts \"Yes\" for any feature.\n",
    "- This happens sometimes. Let's roll with it for the moment."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plot_classifier(X, y, tree1, ticks=True, vmin=0, vmax=1); # note to self: need to set vmin/vmax to to an issue with plot_classifier that always draws blue if all predictions are the same\n",
    "plt.xlabel(\"Meat consumption (% days)\");\n",
    "plt.ylabel(\"Expected grade (%)\");"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "- The background colour shows our prediction.\n",
    "- We predict red (likes cilantro) for any features.\n",
    "- We can get an accuracy score using `.score()` from sklearn"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.72"
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "tree1.score(X, y)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "- This is doing the same thing as `DummyClassifier` so we get the same score.\n",
    "- We can verify this using `.predict()`"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array(['Yes'], dtype=object)"
      ]
     },
     "execution_count": 21,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "tree1.predict([[50, 50]])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array(['Yes'], dtype=object)"
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "tree1.predict([[99,99]])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array(['Yes', 'Yes', 'Yes', 'Yes', 'Yes', 'Yes', 'Yes', 'Yes', 'Yes',\n",
       "       'Yes', 'Yes', 'Yes', 'Yes', 'Yes', 'Yes', 'Yes', 'Yes', 'Yes',\n",
       "       'Yes', 'Yes', 'Yes', 'Yes', 'Yes', 'Yes', 'Yes', 'Yes', 'Yes',\n",
       "       'Yes', 'Yes', 'Yes', 'Yes', 'Yes', 'Yes', 'Yes', 'Yes', 'Yes',\n",
       "       'Yes', 'Yes', 'Yes', 'Yes', 'Yes', 'Yes', 'Yes', 'Yes', 'Yes',\n",
       "       'Yes', 'Yes', 'Yes', 'Yes', 'Yes', 'Yes', 'Yes', 'Yes', 'Yes',\n",
       "       'Yes', 'Yes', 'Yes', 'Yes', 'Yes', 'Yes', 'Yes', 'Yes', 'Yes',\n",
       "       'Yes', 'Yes', 'Yes', 'Yes', 'Yes', 'Yes', 'Yes', 'Yes', 'Yes',\n",
       "       'Yes', 'Yes', 'Yes', 'Yes', 'Yes', 'Yes', 'Yes', 'Yes', 'Yes',\n",
       "       'Yes', 'Yes', 'Yes', 'Yes', 'Yes', 'Yes', 'Yes', 'Yes', 'Yes',\n",
       "       'Yes', 'Yes', 'Yes', 'Yes', 'Yes', 'Yes', 'Yes', 'Yes', 'Yes',\n",
       "       'Yes', 'Yes', 'Yes', 'Yes', 'Yes', 'Yes', 'Yes', 'Yes', 'Yes',\n",
       "       'Yes', 'Yes', 'Yes', 'Yes', 'Yes', 'Yes', 'Yes', 'Yes', 'Yes',\n",
       "       'Yes', 'Yes', 'Yes', 'Yes', 'Yes', 'Yes', 'Yes', 'Yes', 'Yes',\n",
       "       'Yes', 'Yes', 'Yes', 'Yes', 'Yes', 'Yes', 'Yes', 'Yes', 'Yes',\n",
       "       'Yes', 'Yes', 'Yes', 'Yes', 'Yes', 'Yes', 'Yes', 'Yes', 'Yes',\n",
       "       'Yes', 'Yes', 'Yes', 'Yes', 'Yes', 'Yes', 'Yes', 'Yes', 'Yes',\n",
       "       'Yes', 'Yes', 'Yes', 'Yes', 'Yes', 'Yes', 'Yes', 'Yes', 'Yes',\n",
       "       'Yes', 'Yes', 'Yes', 'Yes', 'Yes', 'Yes', 'Yes', 'Yes', 'Yes',\n",
       "       'Yes', 'Yes', 'Yes', 'Yes', 'Yes', 'Yes', 'Yes', 'Yes', 'Yes',\n",
       "       'Yes', 'Yes', 'Yes', 'Yes', 'Yes', 'Yes', 'Yes', 'Yes', 'Yes',\n",
       "       'Yes', 'Yes', 'Yes', 'Yes', 'Yes', 'Yes', 'Yes', 'Yes', 'Yes',\n",
       "       'Yes', 'Yes'], dtype=object)"
      ]
     },
     "execution_count": 23,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "tree1.predict(X)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "etc."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "- Let's make the tree deeper by increasing `max_depth`."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [],
   "source": [
    "tree2 = DecisionTreeClassifier(max_depth=2)\n",
    "tree2.fit(X, y);"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/svg+xml": [
       "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
       "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
       " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
       "<!-- Generated by graphviz version 2.40.1 (20161225.0304)\n",
       " -->\n",
       "<!-- Title: Tree Pages: 1 -->\n",
       "<svg width=\"382pt\" height=\"188pt\"\n",
       " viewBox=\"0.00 0.00 382.00 188.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
       "<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 184)\">\n",
       "<title>Tree</title>\n",
       "<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-184 378,-184 378,4 -4,4\"/>\n",
       "<!-- 0 -->\n",
       "<g id=\"node1\" class=\"node\">\n",
       "<title>0</title>\n",
       "<polygon fill=\"none\" stroke=\"#000000\" points=\"230.5,-180 139.5,-180 139.5,-144 230.5,-144 230.5,-180\"/>\n",
       "<text text-anchor=\"middle\" x=\"185\" y=\"-158.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">meat &lt;= 99.5</text>\n",
       "</g>\n",
       "<!-- 1 -->\n",
       "<g id=\"node2\" class=\"node\">\n",
       "<title>1</title>\n",
       "<polygon fill=\"none\" stroke=\"#000000\" points=\"176.5,-108 81.5,-108 81.5,-72 176.5,-72 176.5,-108\"/>\n",
       "<text text-anchor=\"middle\" x=\"129\" y=\"-86.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">grade &lt;= 34.5</text>\n",
       "</g>\n",
       "<!-- 0&#45;&gt;1 -->\n",
       "<g id=\"edge1\" class=\"edge\">\n",
       "<title>0&#45;&gt;1</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M170.8688,-143.8314C164.4189,-135.5386 156.6555,-125.557 149.5748,-116.4533\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"152.2236,-114.158 143.3214,-108.4133 146.6981,-118.4556 152.2236,-114.158\"/>\n",
       "<text text-anchor=\"middle\" x=\"140.2206\" y=\"-129.5202\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">True</text>\n",
       "</g>\n",
       "<!-- 4 -->\n",
       "<g id=\"node5\" class=\"node\">\n",
       "<title>4</title>\n",
       "<polygon fill=\"none\" stroke=\"#000000\" points=\"289.5,-108 194.5,-108 194.5,-72 289.5,-72 289.5,-108\"/>\n",
       "<text text-anchor=\"middle\" x=\"242\" y=\"-86.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">grade &lt;= 69.5</text>\n",
       "</g>\n",
       "<!-- 0&#45;&gt;4 -->\n",
       "<g id=\"edge4\" class=\"edge\">\n",
       "<title>0&#45;&gt;4</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M199.3835,-143.8314C205.9486,-135.5386 213.8507,-125.557 221.0578,-116.4533\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"223.9599,-118.4262 227.4228,-108.4133 218.4716,-114.0813 223.9599,-118.4262\"/>\n",
       "<text text-anchor=\"middle\" x=\"230.3104\" y=\"-129.546\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">False</text>\n",
       "</g>\n",
       "<!-- 2 -->\n",
       "<g id=\"node3\" class=\"node\">\n",
       "<title>2</title>\n",
       "<polygon fill=\"none\" stroke=\"#000000\" points=\"76,-36 0,-36 0,0 76,0 76,-36\"/>\n",
       "<text text-anchor=\"middle\" x=\"38\" y=\"-14.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">class = No</text>\n",
       "</g>\n",
       "<!-- 1&#45;&gt;2 -->\n",
       "<g id=\"edge2\" class=\"edge\">\n",
       "<title>1&#45;&gt;2</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M106.0369,-71.8314C94.8285,-62.9632 81.1791,-52.1637 69.0561,-42.5718\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"70.9697,-39.6229 60.9558,-36.1628 66.6263,-45.1125 70.9697,-39.6229\"/>\n",
       "</g>\n",
       "<!-- 3 -->\n",
       "<g id=\"node4\" class=\"node\">\n",
       "<title>3</title>\n",
       "<polygon fill=\"none\" stroke=\"#000000\" points=\"174,-36 94,-36 94,0 174,0 174,-36\"/>\n",
       "<text text-anchor=\"middle\" x=\"134\" y=\"-14.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">class = Yes</text>\n",
       "</g>\n",
       "<!-- 1&#45;&gt;3 -->\n",
       "<g id=\"edge3\" class=\"edge\">\n",
       "<title>1&#45;&gt;3</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M130.2617,-71.8314C130.7965,-64.131 131.4323,-54.9743 132.0266,-46.4166\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"135.52,-46.6317 132.7213,-36.4133 128.5368,-46.1467 135.52,-46.6317\"/>\n",
       "</g>\n",
       "<!-- 5 -->\n",
       "<g id=\"node6\" class=\"node\">\n",
       "<title>5</title>\n",
       "<polygon fill=\"none\" stroke=\"#000000\" points=\"276,-36 200,-36 200,0 276,0 276,-36\"/>\n",
       "<text text-anchor=\"middle\" x=\"238\" y=\"-14.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">class = No</text>\n",
       "</g>\n",
       "<!-- 4&#45;&gt;5 -->\n",
       "<g id=\"edge5\" class=\"edge\">\n",
       "<title>4&#45;&gt;5</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M240.9906,-71.8314C240.5628,-64.131 240.0541,-54.9743 239.5787,-46.4166\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"243.0724,-46.2037 239.023,-36.4133 236.0831,-46.592 243.0724,-46.2037\"/>\n",
       "</g>\n",
       "<!-- 6 -->\n",
       "<g id=\"node7\" class=\"node\">\n",
       "<title>6</title>\n",
       "<polygon fill=\"none\" stroke=\"#000000\" points=\"374,-36 294,-36 294,0 374,0 374,-36\"/>\n",
       "<text text-anchor=\"middle\" x=\"334\" y=\"-14.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">class = Yes</text>\n",
       "</g>\n",
       "<!-- 4&#45;&gt;6 -->\n",
       "<g id=\"edge6\" class=\"edge\">\n",
       "<title>4&#45;&gt;6</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M265.2155,-71.8314C276.547,-62.9632 290.3464,-52.1637 302.6027,-42.5718\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"305.074,-45.0822 310.7919,-36.1628 300.7598,-39.5697 305.074,-45.0822\"/>\n",
       "</g>\n",
       "</g>\n",
       "</svg>\n"
      ],
      "text/plain": [
       "<graphviz.files.Source at 0x7fd728fd7490>"
      ]
     },
     "execution_count": 25,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "display_tree(df.columns[:-1], tree2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plot_classifier(X, y, tree2, ticks=True, show_data=True);\n",
    "plt.xlabel(\"Meat consumption (% days)\");\n",
    "plt.ylabel(\"Expected grade (%)\");"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "- Let's take a moment to make sure we can correspond the tree diagram to this diagram - they are saying the same thing."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.73"
      ]
     },
     "execution_count": 28,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "tree2.score(X, y)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "- By the way, what does `.score()` do?\n",
    "- It calls `predict` and then compares the predictions to the true labels."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 62,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.73"
      ]
     },
     "execution_count": 62,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "(tree2.predict(X) == y).sum()/len(y)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Or, equivalently,"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 60,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.73"
      ]
     },
     "execution_count": 60,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "(tree2.predict(X) == y).mean()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 63,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0      Yes\n",
       "1       No\n",
       "2      Yes\n",
       "3       No\n",
       "4       No\n",
       "      ... \n",
       "195    Yes\n",
       "196    Yes\n",
       "197    Yes\n",
       "198    Yes\n",
       "199    Yes\n",
       "Name: cilantro, Length: 200, dtype: object"
      ]
     },
     "execution_count": 63,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Moving on to `max_depth=None`, which lets it grow the tree as much as it wants."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [],
   "source": [
    "tree = DecisionTreeClassifier(max_depth=None)\n",
    "tree.fit(X, y);"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array(['Yes'], dtype=object)"
      ]
     },
     "execution_count": 44,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "tree.predict([[90, 90]])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/svg+xml": [
       "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
       "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
       " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
       "<!-- Generated by graphviz version 2.40.1 (20161225.0304)\n",
       " -->\n",
       "<!-- Title: Tree Pages: 1 -->\n",
       "<svg width=\"2582pt\" height=\"980pt\"\n",
       " viewBox=\"0.00 0.00 2581.50 980.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
       "<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 976)\">\n",
       "<title>Tree</title>\n",
       "<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-976 2577.5,-976 2577.5,4 -4,4\"/>\n",
       "<!-- 0 -->\n",
       "<g id=\"node1\" class=\"node\">\n",
       "<title>0</title>\n",
       "<polygon fill=\"none\" stroke=\"#000000\" points=\"1839,-972 1748,-972 1748,-936 1839,-936 1839,-972\"/>\n",
       "<text text-anchor=\"middle\" x=\"1793.5\" y=\"-950.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">meat &lt;= 99.5</text>\n",
       "</g>\n",
       "<!-- 1 -->\n",
       "<g id=\"node2\" class=\"node\">\n",
       "<title>1</title>\n",
       "<polygon fill=\"none\" stroke=\"#000000\" points=\"1785,-900 1690,-900 1690,-864 1785,-864 1785,-900\"/>\n",
       "<text text-anchor=\"middle\" x=\"1737.5\" y=\"-878.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">grade &lt;= 34.5</text>\n",
       "</g>\n",
       "<!-- 0&#45;&gt;1 -->\n",
       "<g id=\"edge1\" class=\"edge\">\n",
       "<title>0&#45;&gt;1</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M1779.3688,-935.8314C1772.9189,-927.5386 1765.1555,-917.557 1758.0748,-908.4533\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1760.7236,-906.158 1751.8214,-900.4133 1755.1981,-910.4556 1760.7236,-906.158\"/>\n",
       "<text text-anchor=\"middle\" x=\"1748.7206\" y=\"-921.5202\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">True</text>\n",
       "</g>\n",
       "<!-- 88 -->\n",
       "<g id=\"node89\" class=\"node\">\n",
       "<title>88</title>\n",
       "<polygon fill=\"none\" stroke=\"#000000\" points=\"1939,-900 1844,-900 1844,-864 1939,-864 1939,-900\"/>\n",
       "<text text-anchor=\"middle\" x=\"1891.5\" y=\"-878.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">grade &lt;= 69.5</text>\n",
       "</g>\n",
       "<!-- 0&#45;&gt;88 -->\n",
       "<g id=\"edge88\" class=\"edge\">\n",
       "<title>0&#45;&gt;88</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M1818.2295,-935.8314C1830.4162,-926.8779 1845.2823,-915.9558 1858.4312,-906.2955\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1860.7918,-908.9042 1866.7784,-900.1628 1856.6473,-903.263 1860.7918,-908.9042\"/>\n",
       "<text text-anchor=\"middle\" x=\"1862.9988\" y=\"-921.1755\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">False</text>\n",
       "</g>\n",
       "<!-- 2 -->\n",
       "<g id=\"node3\" class=\"node\">\n",
       "<title>2</title>\n",
       "<polygon fill=\"none\" stroke=\"#000000\" points=\"1671.5,-828 1595.5,-828 1595.5,-792 1671.5,-792 1671.5,-828\"/>\n",
       "<text text-anchor=\"middle\" x=\"1633.5\" y=\"-806.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">class = No</text>\n",
       "</g>\n",
       "<!-- 1&#45;&gt;2 -->\n",
       "<g id=\"edge2\" class=\"edge\">\n",
       "<title>1&#45;&gt;2</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M1711.2564,-863.8314C1698.2005,-854.7927 1682.2465,-843.7476 1668.1953,-834.0198\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1669.9494,-830.9773 1659.7352,-828.1628 1665.9649,-836.7326 1669.9494,-830.9773\"/>\n",
       "</g>\n",
       "<!-- 3 -->\n",
       "<g id=\"node4\" class=\"node\">\n",
       "<title>3</title>\n",
       "<polygon fill=\"none\" stroke=\"#000000\" points=\"1785,-828 1690,-828 1690,-792 1785,-792 1785,-828\"/>\n",
       "<text text-anchor=\"middle\" x=\"1737.5\" y=\"-806.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">grade &lt;= 87.5</text>\n",
       "</g>\n",
       "<!-- 1&#45;&gt;3 -->\n",
       "<g id=\"edge3\" class=\"edge\">\n",
       "<title>1&#45;&gt;3</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M1737.5,-863.8314C1737.5,-856.131 1737.5,-846.9743 1737.5,-838.4166\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1741.0001,-838.4132 1737.5,-828.4133 1734.0001,-838.4133 1741.0001,-838.4132\"/>\n",
       "</g>\n",
       "<!-- 4 -->\n",
       "<g id=\"node5\" class=\"node\">\n",
       "<title>4</title>\n",
       "<polygon fill=\"none\" stroke=\"#000000\" points=\"1597,-756 1502,-756 1502,-720 1597,-720 1597,-756\"/>\n",
       "<text text-anchor=\"middle\" x=\"1549.5\" y=\"-734.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">grade &lt;= 86.5</text>\n",
       "</g>\n",
       "<!-- 3&#45;&gt;4 -->\n",
       "<g id=\"edge4\" class=\"edge\">\n",
       "<title>3&#45;&gt;4</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M1690.0597,-791.8314C1664.5805,-782.0734 1632.9956,-769.977 1606.2243,-759.7242\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1607.1896,-756.346 1596.5992,-756.038 1604.686,-762.883 1607.1896,-756.346\"/>\n",
       "</g>\n",
       "<!-- 73 -->\n",
       "<g id=\"node74\" class=\"node\">\n",
       "<title>73</title>\n",
       "<polygon fill=\"none\" stroke=\"#000000\" points=\"1783,-756 1692,-756 1692,-720 1783,-720 1783,-756\"/>\n",
       "<text text-anchor=\"middle\" x=\"1737.5\" y=\"-734.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">meat &lt;= 70.5</text>\n",
       "</g>\n",
       "<!-- 3&#45;&gt;73 -->\n",
       "<g id=\"edge73\" class=\"edge\">\n",
       "<title>3&#45;&gt;73</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M1737.5,-791.8314C1737.5,-784.131 1737.5,-774.9743 1737.5,-766.4166\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1741.0001,-766.4132 1737.5,-756.4133 1734.0001,-766.4133 1741.0001,-766.4132\"/>\n",
       "</g>\n",
       "<!-- 5 -->\n",
       "<g id=\"node6\" class=\"node\">\n",
       "<title>5</title>\n",
       "<polygon fill=\"none\" stroke=\"#000000\" points=\"1468,-684 1377,-684 1377,-648 1468,-648 1468,-684\"/>\n",
       "<text text-anchor=\"middle\" x=\"1422.5\" y=\"-662.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">meat &lt;= 73.0</text>\n",
       "</g>\n",
       "<!-- 4&#45;&gt;5 -->\n",
       "<g id=\"edge5\" class=\"edge\">\n",
       "<title>4&#45;&gt;5</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M1517.4525,-719.8314C1501.058,-710.5368 1480.9214,-699.1208 1463.4171,-689.1971\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1464.9626,-686.05 1454.5372,-684.1628 1461.5103,-692.1395 1464.9626,-686.05\"/>\n",
       "</g>\n",
       "<!-- 72 -->\n",
       "<g id=\"node73\" class=\"node\">\n",
       "<title>72</title>\n",
       "<polygon fill=\"none\" stroke=\"#000000\" points=\"1587.5,-684 1511.5,-684 1511.5,-648 1587.5,-648 1587.5,-684\"/>\n",
       "<text text-anchor=\"middle\" x=\"1549.5\" y=\"-662.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">class = No</text>\n",
       "</g>\n",
       "<!-- 4&#45;&gt;72 -->\n",
       "<g id=\"edge72\" class=\"edge\">\n",
       "<title>4&#45;&gt;72</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M1549.5,-719.8314C1549.5,-712.131 1549.5,-702.9743 1549.5,-694.4166\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1553.0001,-694.4132 1549.5,-684.4133 1546.0001,-694.4133 1553.0001,-694.4132\"/>\n",
       "</g>\n",
       "<!-- 6 -->\n",
       "<g id=\"node7\" class=\"node\">\n",
       "<title>6</title>\n",
       "<polygon fill=\"none\" stroke=\"#000000\" points=\"828,-612 737,-612 737,-576 828,-576 828,-612\"/>\n",
       "<text text-anchor=\"middle\" x=\"782.5\" y=\"-590.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">meat &lt;= 46.5</text>\n",
       "</g>\n",
       "<!-- 5&#45;&gt;6 -->\n",
       "<g id=\"edge6\" class=\"edge\">\n",
       "<title>5&#45;&gt;6</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M1376.9858,-660.8797C1262.5466,-648.0052 963.0681,-614.3139 838.3098,-600.2786\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"838.5389,-596.7824 828.2103,-599.1424 837.7563,-603.7385 838.5389,-596.7824\"/>\n",
       "</g>\n",
       "<!-- 59 -->\n",
       "<g id=\"node60\" class=\"node\">\n",
       "<title>59</title>\n",
       "<polygon fill=\"none\" stroke=\"#000000\" points=\"1470,-612 1375,-612 1375,-576 1470,-576 1470,-612\"/>\n",
       "<text text-anchor=\"middle\" x=\"1422.5\" y=\"-590.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">grade &lt;= 84.0</text>\n",
       "</g>\n",
       "<!-- 5&#45;&gt;59 -->\n",
       "<g id=\"edge59\" class=\"edge\">\n",
       "<title>5&#45;&gt;59</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M1422.5,-647.8314C1422.5,-640.131 1422.5,-630.9743 1422.5,-622.4166\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1426.0001,-622.4132 1422.5,-612.4133 1419.0001,-622.4133 1426.0001,-622.4132\"/>\n",
       "</g>\n",
       "<!-- 7 -->\n",
       "<g id=\"node8\" class=\"node\">\n",
       "<title>7</title>\n",
       "<polygon fill=\"none\" stroke=\"#000000\" points=\"355,-540 260,-540 260,-504 355,-504 355,-540\"/>\n",
       "<text text-anchor=\"middle\" x=\"307.5\" y=\"-518.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">grade &lt;= 81.0</text>\n",
       "</g>\n",
       "<!-- 6&#45;&gt;7 -->\n",
       "<g id=\"edge7\" class=\"edge\">\n",
       "<title>6&#45;&gt;7</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M736.955,-587.0963C650.0271,-573.9199 460.6263,-545.2107 365.0755,-530.7272\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"365.4256,-527.2404 355.014,-529.2021 364.3765,-534.1613 365.4256,-527.2404\"/>\n",
       "</g>\n",
       "<!-- 28 -->\n",
       "<g id=\"node29\" class=\"node\">\n",
       "<title>28</title>\n",
       "<polygon fill=\"none\" stroke=\"#000000\" points=\"830,-540 735,-540 735,-504 830,-504 830,-540\"/>\n",
       "<text text-anchor=\"middle\" x=\"782.5\" y=\"-518.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">grade &lt;= 77.5</text>\n",
       "</g>\n",
       "<!-- 6&#45;&gt;28 -->\n",
       "<g id=\"edge28\" class=\"edge\">\n",
       "<title>6&#45;&gt;28</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M782.5,-575.8314C782.5,-568.131 782.5,-558.9743 782.5,-550.4166\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"786.0001,-550.4132 782.5,-540.4133 779.0001,-550.4133 786.0001,-550.4132\"/>\n",
       "</g>\n",
       "<!-- 8 -->\n",
       "<g id=\"node9\" class=\"node\">\n",
       "<title>8</title>\n",
       "<polygon fill=\"none\" stroke=\"#000000\" points=\"192.5,-468 108.5,-468 108.5,-432 192.5,-432 192.5,-468\"/>\n",
       "<text text-anchor=\"middle\" x=\"150.5\" y=\"-446.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">meat &lt;= 9.5</text>\n",
       "</g>\n",
       "<!-- 7&#45;&gt;8 -->\n",
       "<g id=\"edge8\" class=\"edge\">\n",
       "<title>7&#45;&gt;8</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M267.8823,-503.8314C246.9778,-494.2446 221.1517,-482.4008 199.0512,-472.2655\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"200.3816,-469.0252 189.8328,-468.038 197.4636,-475.388 200.3816,-469.0252\"/>\n",
       "</g>\n",
       "<!-- 15 -->\n",
       "<g id=\"node16\" class=\"node\">\n",
       "<title>15</title>\n",
       "<polygon fill=\"none\" stroke=\"#000000\" points=\"355,-468 260,-468 260,-432 355,-432 355,-468\"/>\n",
       "<text text-anchor=\"middle\" x=\"307.5\" y=\"-446.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">grade &lt;= 82.5</text>\n",
       "</g>\n",
       "<!-- 7&#45;&gt;15 -->\n",
       "<g id=\"edge15\" class=\"edge\">\n",
       "<title>7&#45;&gt;15</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M307.5,-503.8314C307.5,-496.131 307.5,-486.9743 307.5,-478.4166\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"311.0001,-478.4132 307.5,-468.4133 304.0001,-478.4133 311.0001,-478.4132\"/>\n",
       "</g>\n",
       "<!-- 9 -->\n",
       "<g id=\"node10\" class=\"node\">\n",
       "<title>9</title>\n",
       "<polygon fill=\"none\" stroke=\"#000000\" points=\"83.5,-396 3.5,-396 3.5,-360 83.5,-360 83.5,-396\"/>\n",
       "<text text-anchor=\"middle\" x=\"43.5\" y=\"-374.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">class = Yes</text>\n",
       "</g>\n",
       "<!-- 8&#45;&gt;9 -->\n",
       "<g id=\"edge9\" class=\"edge\">\n",
       "<title>8&#45;&gt;9</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M123.4994,-431.8314C110.0669,-422.7927 93.6527,-411.7476 79.1961,-402.0198\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"80.7425,-398.8418 70.492,-396.1628 76.8346,-404.6494 80.7425,-398.8418\"/>\n",
       "</g>\n",
       "<!-- 10 -->\n",
       "<g id=\"node11\" class=\"node\">\n",
       "<title>10</title>\n",
       "<polygon fill=\"none\" stroke=\"#000000\" points=\"199.5,-396 101.5,-396 101.5,-360 199.5,-360 199.5,-396\"/>\n",
       "<text text-anchor=\"middle\" x=\"150.5\" y=\"-374.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">meat &lt;= 14.14</text>\n",
       "</g>\n",
       "<!-- 8&#45;&gt;10 -->\n",
       "<g id=\"edge10\" class=\"edge\">\n",
       "<title>8&#45;&gt;10</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M150.5,-431.8314C150.5,-424.131 150.5,-414.9743 150.5,-406.4166\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"154.0001,-406.4132 150.5,-396.4133 147.0001,-406.4133 154.0001,-406.4132\"/>\n",
       "</g>\n",
       "<!-- 11 -->\n",
       "<g id=\"node12\" class=\"node\">\n",
       "<title>11</title>\n",
       "<polygon fill=\"none\" stroke=\"#000000\" points=\"95,-324 0,-324 0,-288 95,-288 95,-324\"/>\n",
       "<text text-anchor=\"middle\" x=\"47.5\" y=\"-302.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">grade &lt;= 75.0</text>\n",
       "</g>\n",
       "<!-- 10&#45;&gt;11 -->\n",
       "<g id=\"edge11\" class=\"edge\">\n",
       "<title>10&#45;&gt;11</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M124.5088,-359.8314C111.5784,-350.7927 95.7778,-339.7476 81.8617,-330.0198\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"83.6843,-327.0235 73.4829,-324.1628 79.6737,-332.7608 83.6843,-327.0235\"/>\n",
       "</g>\n",
       "<!-- 14 -->\n",
       "<g id=\"node15\" class=\"node\">\n",
       "<title>14</title>\n",
       "<polygon fill=\"none\" stroke=\"#000000\" points=\"193.5,-324 113.5,-324 113.5,-288 193.5,-288 193.5,-324\"/>\n",
       "<text text-anchor=\"middle\" x=\"153.5\" y=\"-302.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">class = Yes</text>\n",
       "</g>\n",
       "<!-- 10&#45;&gt;14 -->\n",
       "<g id=\"edge14\" class=\"edge\">\n",
       "<title>10&#45;&gt;14</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M151.257,-359.8314C151.5779,-352.131 151.9594,-342.9743 152.316,-334.4166\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"155.8133,-334.5503 152.7328,-324.4133 148.8194,-334.2589 155.8133,-334.5503\"/>\n",
       "</g>\n",
       "<!-- 12 -->\n",
       "<g id=\"node13\" class=\"node\">\n",
       "<title>12</title>\n",
       "<polygon fill=\"none\" stroke=\"#000000\" points=\"85.5,-252 5.5,-252 5.5,-216 85.5,-216 85.5,-252\"/>\n",
       "<text text-anchor=\"middle\" x=\"45.5\" y=\"-230.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">class = Yes</text>\n",
       "</g>\n",
       "<!-- 11&#45;&gt;12 -->\n",
       "<g id=\"edge12\" class=\"edge\">\n",
       "<title>11&#45;&gt;12</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M46.9953,-287.8314C46.7814,-280.131 46.5271,-270.9743 46.2894,-262.4166\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"49.7879,-262.3122 46.0115,-252.4133 42.7906,-262.5066 49.7879,-262.3122\"/>\n",
       "</g>\n",
       "<!-- 13 -->\n",
       "<g id=\"node14\" class=\"node\">\n",
       "<title>13</title>\n",
       "<polygon fill=\"none\" stroke=\"#000000\" points=\"179.5,-252 103.5,-252 103.5,-216 179.5,-216 179.5,-252\"/>\n",
       "<text text-anchor=\"middle\" x=\"141.5\" y=\"-230.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">class = No</text>\n",
       "</g>\n",
       "<!-- 11&#45;&gt;13 -->\n",
       "<g id=\"edge13\" class=\"edge\">\n",
       "<title>11&#45;&gt;13</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M71.2202,-287.8314C82.9094,-278.8779 97.1688,-267.9558 109.7809,-258.2955\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"111.9769,-261.0222 117.7874,-252.1628 107.7203,-255.4651 111.9769,-261.0222\"/>\n",
       "</g>\n",
       "<!-- 16 -->\n",
       "<g id=\"node17\" class=\"node\">\n",
       "<title>16</title>\n",
       "<polygon fill=\"none\" stroke=\"#000000\" points=\"293.5,-396 217.5,-396 217.5,-360 293.5,-360 293.5,-396\"/>\n",
       "<text text-anchor=\"middle\" x=\"255.5\" y=\"-374.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">class = No</text>\n",
       "</g>\n",
       "<!-- 15&#45;&gt;16 -->\n",
       "<g id=\"edge16\" class=\"edge\">\n",
       "<title>15&#45;&gt;16</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M294.3782,-431.8314C288.4501,-423.6232 281.3271,-413.7606 274.8067,-404.7323\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"277.4908,-402.4708 268.7985,-396.4133 271.816,-406.5693 277.4908,-402.4708\"/>\n",
       "</g>\n",
       "<!-- 17 -->\n",
       "<g id=\"node18\" class=\"node\">\n",
       "<title>17</title>\n",
       "<polygon fill=\"none\" stroke=\"#000000\" points=\"403,-396 312,-396 312,-360 403,-360 403,-396\"/>\n",
       "<text text-anchor=\"middle\" x=\"357.5\" y=\"-374.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">meat &lt;= 21.5</text>\n",
       "</g>\n",
       "<!-- 15&#45;&gt;17 -->\n",
       "<g id=\"edge17\" class=\"edge\">\n",
       "<title>15&#45;&gt;17</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M320.1171,-431.8314C325.8172,-423.6232 332.6663,-413.7606 338.9359,-404.7323\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"341.8838,-406.6234 344.713,-396.4133 336.1342,-402.6306 341.8838,-406.6234\"/>\n",
       "</g>\n",
       "<!-- 18 -->\n",
       "<g id=\"node19\" class=\"node\">\n",
       "<title>18</title>\n",
       "<polygon fill=\"none\" stroke=\"#000000\" points=\"293.5,-324 213.5,-324 213.5,-288 293.5,-288 293.5,-324\"/>\n",
       "<text text-anchor=\"middle\" x=\"253.5\" y=\"-302.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">class = Yes</text>\n",
       "</g>\n",
       "<!-- 17&#45;&gt;18 -->\n",
       "<g id=\"edge18\" class=\"edge\">\n",
       "<title>17&#45;&gt;18</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M331.2564,-359.8314C318.2005,-350.7927 302.2465,-339.7476 288.1953,-330.0198\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"289.9494,-326.9773 279.7352,-324.1628 285.9649,-332.7326 289.9494,-326.9773\"/>\n",
       "</g>\n",
       "<!-- 19 -->\n",
       "<g id=\"node20\" class=\"node\">\n",
       "<title>19</title>\n",
       "<polygon fill=\"none\" stroke=\"#000000\" points=\"403,-324 312,-324 312,-288 403,-288 403,-324\"/>\n",
       "<text text-anchor=\"middle\" x=\"357.5\" y=\"-302.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">meat &lt;= 29.0</text>\n",
       "</g>\n",
       "<!-- 17&#45;&gt;19 -->\n",
       "<g id=\"edge19\" class=\"edge\">\n",
       "<title>17&#45;&gt;19</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M357.5,-359.8314C357.5,-352.131 357.5,-342.9743 357.5,-334.4166\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"361.0001,-334.4132 357.5,-324.4133 354.0001,-334.4133 361.0001,-334.4132\"/>\n",
       "</g>\n",
       "<!-- 20 -->\n",
       "<g id=\"node21\" class=\"node\">\n",
       "<title>20</title>\n",
       "<polygon fill=\"none\" stroke=\"#000000\" points=\"294,-252 199,-252 199,-216 294,-216 294,-252\"/>\n",
       "<text text-anchor=\"middle\" x=\"246.5\" y=\"-230.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">grade &lt;= 84.0</text>\n",
       "</g>\n",
       "<!-- 19&#45;&gt;20 -->\n",
       "<g id=\"edge20\" class=\"edge\">\n",
       "<title>19&#45;&gt;20</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M329.49,-287.8314C315.4239,-278.7074 298.206,-267.539 283.1067,-257.7449\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"284.7953,-254.6684 274.501,-252.1628 280.986,-260.5412 284.7953,-254.6684\"/>\n",
       "</g>\n",
       "<!-- 25 -->\n",
       "<g id=\"node26\" class=\"node\">\n",
       "<title>25</title>\n",
       "<polygon fill=\"none\" stroke=\"#000000\" points=\"403,-252 312,-252 312,-216 403,-216 403,-252\"/>\n",
       "<text text-anchor=\"middle\" x=\"357.5\" y=\"-230.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">meat &lt;= 42.5</text>\n",
       "</g>\n",
       "<!-- 19&#45;&gt;25 -->\n",
       "<g id=\"edge25\" class=\"edge\">\n",
       "<title>19&#45;&gt;25</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M357.5,-287.8314C357.5,-280.131 357.5,-270.9743 357.5,-262.4166\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"361.0001,-262.4132 357.5,-252.4133 354.0001,-262.4133 361.0001,-262.4132\"/>\n",
       "</g>\n",
       "<!-- 21 -->\n",
       "<g id=\"node22\" class=\"node\">\n",
       "<title>21</title>\n",
       "<polygon fill=\"none\" stroke=\"#000000\" points=\"180.5,-180 100.5,-180 100.5,-144 180.5,-144 180.5,-180\"/>\n",
       "<text text-anchor=\"middle\" x=\"140.5\" y=\"-158.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">class = Yes</text>\n",
       "</g>\n",
       "<!-- 20&#45;&gt;21 -->\n",
       "<g id=\"edge21\" class=\"edge\">\n",
       "<title>20&#45;&gt;21</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M219.7517,-215.8314C206.4447,-206.7927 190.184,-195.7476 175.8625,-186.0198\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"177.4785,-182.8864 167.2397,-180.1628 173.5453,-188.677 177.4785,-182.8864\"/>\n",
       "</g>\n",
       "<!-- 22 -->\n",
       "<g id=\"node23\" class=\"node\">\n",
       "<title>22</title>\n",
       "<polygon fill=\"none\" stroke=\"#000000\" points=\"294,-180 199,-180 199,-144 294,-144 294,-180\"/>\n",
       "<text text-anchor=\"middle\" x=\"246.5\" y=\"-158.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">grade &lt;= 85.5</text>\n",
       "</g>\n",
       "<!-- 20&#45;&gt;22 -->\n",
       "<g id=\"edge22\" class=\"edge\">\n",
       "<title>20&#45;&gt;22</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M246.5,-215.8314C246.5,-208.131 246.5,-198.9743 246.5,-190.4166\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"250.0001,-190.4132 246.5,-180.4133 243.0001,-190.4133 250.0001,-190.4132\"/>\n",
       "</g>\n",
       "<!-- 23 -->\n",
       "<g id=\"node24\" class=\"node\">\n",
       "<title>23</title>\n",
       "<polygon fill=\"none\" stroke=\"#000000\" points=\"236.5,-108 160.5,-108 160.5,-72 236.5,-72 236.5,-108\"/>\n",
       "<text text-anchor=\"middle\" x=\"198.5\" y=\"-86.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">class = No</text>\n",
       "</g>\n",
       "<!-- 22&#45;&gt;23 -->\n",
       "<g id=\"edge23\" class=\"edge\">\n",
       "<title>22&#45;&gt;23</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M234.3876,-143.8314C228.9719,-135.7079 222.4758,-125.9637 216.5079,-117.0118\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"219.2347,-114.7923 210.7755,-108.4133 213.4104,-118.6753 219.2347,-114.7923\"/>\n",
       "</g>\n",
       "<!-- 24 -->\n",
       "<g id=\"node25\" class=\"node\">\n",
       "<title>24</title>\n",
       "<polygon fill=\"none\" stroke=\"#000000\" points=\"334.5,-108 254.5,-108 254.5,-72 334.5,-72 334.5,-108\"/>\n",
       "<text text-anchor=\"middle\" x=\"294.5\" y=\"-86.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">class = Yes</text>\n",
       "</g>\n",
       "<!-- 22&#45;&gt;24 -->\n",
       "<g id=\"edge24\" class=\"edge\">\n",
       "<title>22&#45;&gt;24</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M258.6124,-143.8314C264.0281,-135.7079 270.5242,-125.9637 276.4921,-117.0118\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"279.5896,-118.6753 282.2245,-108.4133 273.7653,-114.7923 279.5896,-118.6753\"/>\n",
       "</g>\n",
       "<!-- 26 -->\n",
       "<g id=\"node27\" class=\"node\">\n",
       "<title>26</title>\n",
       "<polygon fill=\"none\" stroke=\"#000000\" points=\"392.5,-180 312.5,-180 312.5,-144 392.5,-144 392.5,-180\"/>\n",
       "<text text-anchor=\"middle\" x=\"352.5\" y=\"-158.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">class = Yes</text>\n",
       "</g>\n",
       "<!-- 25&#45;&gt;26 -->\n",
       "<g id=\"edge26\" class=\"edge\">\n",
       "<title>25&#45;&gt;26</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M356.2383,-215.8314C355.7035,-208.131 355.0677,-198.9743 354.4734,-190.4166\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"357.9632,-190.1467 353.7787,-180.4133 350.98,-190.6317 357.9632,-190.1467\"/>\n",
       "</g>\n",
       "<!-- 27 -->\n",
       "<g id=\"node28\" class=\"node\">\n",
       "<title>27</title>\n",
       "<polygon fill=\"none\" stroke=\"#000000\" points=\"490.5,-180 410.5,-180 410.5,-144 490.5,-144 490.5,-180\"/>\n",
       "<text text-anchor=\"middle\" x=\"450.5\" y=\"-158.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">class = Yes</text>\n",
       "</g>\n",
       "<!-- 25&#45;&gt;27 -->\n",
       "<g id=\"edge27\" class=\"edge\">\n",
       "<title>25&#45;&gt;27</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M380.9678,-215.8314C392.5327,-206.8779 406.6404,-195.9558 419.1183,-186.2955\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"421.275,-189.0521 427.0397,-180.1628 416.9898,-183.5171 421.275,-189.0521\"/>\n",
       "</g>\n",
       "<!-- 29 -->\n",
       "<g id=\"node30\" class=\"node\">\n",
       "<title>29</title>\n",
       "<polygon fill=\"none\" stroke=\"#000000\" points=\"706,-468 611,-468 611,-432 706,-432 706,-468\"/>\n",
       "<text text-anchor=\"middle\" x=\"658.5\" y=\"-446.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">grade &lt;= 67.5</text>\n",
       "</g>\n",
       "<!-- 28&#45;&gt;29 -->\n",
       "<g id=\"edge29\" class=\"edge\">\n",
       "<title>28&#45;&gt;29</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M751.2096,-503.8314C735.2023,-494.5368 715.5414,-483.1208 698.4506,-473.1971\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"700.1858,-470.1575 689.7804,-468.1628 696.6708,-476.211 700.1858,-470.1575\"/>\n",
       "</g>\n",
       "<!-- 42 -->\n",
       "<g id=\"node43\" class=\"node\">\n",
       "<title>42</title>\n",
       "<polygon fill=\"none\" stroke=\"#000000\" points=\"949,-468 858,-468 858,-432 949,-432 949,-468\"/>\n",
       "<text text-anchor=\"middle\" x=\"903.5\" y=\"-446.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">meat &lt;= 67.5</text>\n",
       "</g>\n",
       "<!-- 28&#45;&gt;42 -->\n",
       "<g id=\"edge42\" class=\"edge\">\n",
       "<title>28&#45;&gt;42</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M813.0334,-503.8314C828.5101,-494.6221 847.4869,-483.3301 864.0563,-473.4706\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"866.1724,-476.2843 872.9764,-468.1628 862.5929,-470.2687 866.1724,-476.2843\"/>\n",
       "</g>\n",
       "<!-- 30 -->\n",
       "<g id=\"node31\" class=\"node\">\n",
       "<title>30</title>\n",
       "<polygon fill=\"none\" stroke=\"#000000\" points=\"594.5,-396 514.5,-396 514.5,-360 594.5,-360 594.5,-396\"/>\n",
       "<text text-anchor=\"middle\" x=\"554.5\" y=\"-374.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">class = Yes</text>\n",
       "</g>\n",
       "<!-- 29&#45;&gt;30 -->\n",
       "<g id=\"edge30\" class=\"edge\">\n",
       "<title>29&#45;&gt;30</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M632.2564,-431.8314C619.2005,-422.7927 603.2465,-411.7476 589.1953,-402.0198\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"590.9494,-398.9773 580.7352,-396.1628 586.9649,-404.7326 590.9494,-398.9773\"/>\n",
       "</g>\n",
       "<!-- 31 -->\n",
       "<g id=\"node32\" class=\"node\">\n",
       "<title>31</title>\n",
       "<polygon fill=\"none\" stroke=\"#000000\" points=\"704,-396 613,-396 613,-360 704,-360 704,-396\"/>\n",
       "<text text-anchor=\"middle\" x=\"658.5\" y=\"-374.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">meat &lt;= 53.5</text>\n",
       "</g>\n",
       "<!-- 29&#45;&gt;31 -->\n",
       "<g id=\"edge31\" class=\"edge\">\n",
       "<title>29&#45;&gt;31</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M658.5,-431.8314C658.5,-424.131 658.5,-414.9743 658.5,-406.4166\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"662.0001,-406.4132 658.5,-396.4133 655.0001,-406.4133 662.0001,-406.4132\"/>\n",
       "</g>\n",
       "<!-- 32 -->\n",
       "<g id=\"node33\" class=\"node\">\n",
       "<title>32</title>\n",
       "<polygon fill=\"none\" stroke=\"#000000\" points=\"594.5,-324 518.5,-324 518.5,-288 594.5,-288 594.5,-324\"/>\n",
       "<text text-anchor=\"middle\" x=\"556.5\" y=\"-302.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">class = No</text>\n",
       "</g>\n",
       "<!-- 31&#45;&gt;32 -->\n",
       "<g id=\"edge32\" class=\"edge\">\n",
       "<title>31&#45;&gt;32</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M632.7611,-359.8314C619.9563,-350.7927 604.3091,-339.7476 590.5281,-330.0198\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"592.4188,-327.0703 582.2307,-324.1628 588.382,-332.7891 592.4188,-327.0703\"/>\n",
       "</g>\n",
       "<!-- 33 -->\n",
       "<g id=\"node34\" class=\"node\">\n",
       "<title>33</title>\n",
       "<polygon fill=\"none\" stroke=\"#000000\" points=\"704,-324 613,-324 613,-288 704,-288 704,-324\"/>\n",
       "<text text-anchor=\"middle\" x=\"658.5\" y=\"-302.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">meat &lt;= 70.5</text>\n",
       "</g>\n",
       "<!-- 31&#45;&gt;33 -->\n",
       "<g id=\"edge33\" class=\"edge\">\n",
       "<title>31&#45;&gt;33</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M658.5,-359.8314C658.5,-352.131 658.5,-342.9743 658.5,-334.4166\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"662.0001,-334.4132 658.5,-324.4133 655.0001,-334.4133 662.0001,-334.4132\"/>\n",
       "</g>\n",
       "<!-- 34 -->\n",
       "<g id=\"node35\" class=\"node\">\n",
       "<title>34</title>\n",
       "<polygon fill=\"none\" stroke=\"#000000\" points=\"602,-252 511,-252 511,-216 602,-216 602,-252\"/>\n",
       "<text text-anchor=\"middle\" x=\"556.5\" y=\"-230.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">meat &lt;= 65.0</text>\n",
       "</g>\n",
       "<!-- 33&#45;&gt;34 -->\n",
       "<g id=\"edge34\" class=\"edge\">\n",
       "<title>33&#45;&gt;34</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M632.7611,-287.8314C619.9563,-278.7927 604.3091,-267.7476 590.5281,-258.0198\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"592.4188,-255.0703 582.2307,-252.1628 588.382,-260.7891 592.4188,-255.0703\"/>\n",
       "</g>\n",
       "<!-- 41 -->\n",
       "<g id=\"node42\" class=\"node\">\n",
       "<title>41</title>\n",
       "<polygon fill=\"none\" stroke=\"#000000\" points=\"696.5,-252 620.5,-252 620.5,-216 696.5,-216 696.5,-252\"/>\n",
       "<text text-anchor=\"middle\" x=\"658.5\" y=\"-230.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">class = No</text>\n",
       "</g>\n",
       "<!-- 33&#45;&gt;41 -->\n",
       "<g id=\"edge41\" class=\"edge\">\n",
       "<title>33&#45;&gt;41</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M658.5,-287.8314C658.5,-280.131 658.5,-270.9743 658.5,-262.4166\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"662.0001,-262.4132 658.5,-252.4133 655.0001,-262.4133 662.0001,-262.4132\"/>\n",
       "</g>\n",
       "<!-- 35 -->\n",
       "<g id=\"node36\" class=\"node\">\n",
       "<title>35</title>\n",
       "<polygon fill=\"none\" stroke=\"#000000\" points=\"604,-180 509,-180 509,-144 604,-144 604,-180\"/>\n",
       "<text text-anchor=\"middle\" x=\"556.5\" y=\"-158.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">grade &lt;= 72.5</text>\n",
       "</g>\n",
       "<!-- 34&#45;&gt;35 -->\n",
       "<g id=\"edge35\" class=\"edge\">\n",
       "<title>34&#45;&gt;35</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M556.5,-215.8314C556.5,-208.131 556.5,-198.9743 556.5,-190.4166\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"560.0001,-190.4132 556.5,-180.4133 553.0001,-190.4133 560.0001,-190.4132\"/>\n",
       "</g>\n",
       "<!-- 40 -->\n",
       "<g id=\"node41\" class=\"node\">\n",
       "<title>40</title>\n",
       "<polygon fill=\"none\" stroke=\"#000000\" points=\"702.5,-180 622.5,-180 622.5,-144 702.5,-144 702.5,-180\"/>\n",
       "<text text-anchor=\"middle\" x=\"662.5\" y=\"-158.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">class = Yes</text>\n",
       "</g>\n",
       "<!-- 34&#45;&gt;40 -->\n",
       "<g id=\"edge40\" class=\"edge\">\n",
       "<title>34&#45;&gt;40</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M583.2483,-215.8314C596.5553,-206.7927 612.816,-195.7476 627.1375,-186.0198\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"629.4547,-188.677 635.7603,-180.1628 625.5215,-182.8864 629.4547,-188.677\"/>\n",
       "</g>\n",
       "<!-- 36 -->\n",
       "<g id=\"node37\" class=\"node\">\n",
       "<title>36</title>\n",
       "<polygon fill=\"none\" stroke=\"#000000\" points=\"543.5,-108 467.5,-108 467.5,-72 543.5,-72 543.5,-108\"/>\n",
       "<text text-anchor=\"middle\" x=\"505.5\" y=\"-86.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">class = No</text>\n",
       "</g>\n",
       "<!-- 35&#45;&gt;36 -->\n",
       "<g id=\"edge36\" class=\"edge\">\n",
       "<title>35&#45;&gt;36</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M543.6305,-143.8314C537.8165,-135.6232 530.8304,-125.7606 524.4354,-116.7323\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"527.179,-114.5505 518.5427,-108.4133 521.4669,-118.5966 527.179,-114.5505\"/>\n",
       "</g>\n",
       "<!-- 37 -->\n",
       "<g id=\"node38\" class=\"node\">\n",
       "<title>37</title>\n",
       "<polygon fill=\"none\" stroke=\"#000000\" points=\"653,-108 562,-108 562,-72 653,-72 653,-108\"/>\n",
       "<text text-anchor=\"middle\" x=\"607.5\" y=\"-86.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">meat &lt;= 58.5</text>\n",
       "</g>\n",
       "<!-- 35&#45;&gt;37 -->\n",
       "<g id=\"edge37\" class=\"edge\">\n",
       "<title>35&#45;&gt;37</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M569.3695,-143.8314C575.1835,-135.6232 582.1696,-125.7606 588.5646,-116.7323\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"591.5331,-118.5966 594.4573,-108.4133 585.821,-114.5505 591.5331,-118.5966\"/>\n",
       "</g>\n",
       "<!-- 38 -->\n",
       "<g id=\"node39\" class=\"node\">\n",
       "<title>38</title>\n",
       "<polygon fill=\"none\" stroke=\"#000000\" points=\"599.5,-36 519.5,-36 519.5,0 599.5,0 599.5,-36\"/>\n",
       "<text text-anchor=\"middle\" x=\"559.5\" y=\"-14.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">class = Yes</text>\n",
       "</g>\n",
       "<!-- 37&#45;&gt;38 -->\n",
       "<g id=\"edge38\" class=\"edge\">\n",
       "<title>37&#45;&gt;38</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M595.3876,-71.8314C589.9719,-63.7079 583.4758,-53.9637 577.5079,-45.0118\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"580.2347,-42.7923 571.7755,-36.4133 574.4104,-46.6753 580.2347,-42.7923\"/>\n",
       "</g>\n",
       "<!-- 39 -->\n",
       "<g id=\"node40\" class=\"node\">\n",
       "<title>39</title>\n",
       "<polygon fill=\"none\" stroke=\"#000000\" points=\"693.5,-36 617.5,-36 617.5,0 693.5,0 693.5,-36\"/>\n",
       "<text text-anchor=\"middle\" x=\"655.5\" y=\"-14.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">class = No</text>\n",
       "</g>\n",
       "<!-- 37&#45;&gt;39 -->\n",
       "<g id=\"edge39\" class=\"edge\">\n",
       "<title>37&#45;&gt;39</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M619.6124,-71.8314C625.0281,-63.7079 631.5242,-53.9637 637.4921,-45.0118\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"640.5896,-46.6753 643.2245,-36.4133 634.7653,-42.7923 640.5896,-46.6753\"/>\n",
       "</g>\n",
       "<!-- 43 -->\n",
       "<g id=\"node44\" class=\"node\">\n",
       "<title>43</title>\n",
       "<polygon fill=\"none\" stroke=\"#000000\" points=\"951,-396 856,-396 856,-360 951,-360 951,-396\"/>\n",
       "<text text-anchor=\"middle\" x=\"903.5\" y=\"-374.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">grade &lt;= 82.5</text>\n",
       "</g>\n",
       "<!-- 42&#45;&gt;43 -->\n",
       "<g id=\"edge43\" class=\"edge\">\n",
       "<title>42&#45;&gt;43</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M903.5,-431.8314C903.5,-424.131 903.5,-414.9743 903.5,-406.4166\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"907.0001,-406.4132 903.5,-396.4133 900.0001,-406.4133 907.0001,-406.4132\"/>\n",
       "</g>\n",
       "<!-- 52 -->\n",
       "<g id=\"node53\" class=\"node\">\n",
       "<title>52</title>\n",
       "<polygon fill=\"none\" stroke=\"#000000\" points=\"1214,-396 1123,-396 1123,-360 1214,-360 1214,-396\"/>\n",
       "<text text-anchor=\"middle\" x=\"1168.5\" y=\"-374.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">meat &lt;= 70.5</text>\n",
       "</g>\n",
       "<!-- 42&#45;&gt;52 -->\n",
       "<g id=\"edge52\" class=\"edge\">\n",
       "<title>42&#45;&gt;52</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M949.0551,-437.6228C994.4652,-425.2849 1064.2686,-406.3195 1112.9145,-393.1025\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1113.92,-396.4562 1122.6525,-390.4567 1112.0846,-389.7011 1113.92,-396.4562\"/>\n",
       "</g>\n",
       "<!-- 44 -->\n",
       "<g id=\"node45\" class=\"node\">\n",
       "<title>44</title>\n",
       "<polygon fill=\"none\" stroke=\"#000000\" points=\"894,-324 803,-324 803,-288 894,-288 894,-324\"/>\n",
       "<text text-anchor=\"middle\" x=\"848.5\" y=\"-302.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">meat &lt;= 53.5</text>\n",
       "</g>\n",
       "<!-- 43&#45;&gt;44 -->\n",
       "<g id=\"edge44\" class=\"edge\">\n",
       "<title>43&#45;&gt;44</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M889.6212,-359.8314C883.2864,-351.5386 875.6616,-341.557 868.7074,-332.4533\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"871.4175,-330.2353 862.5657,-324.4133 865.8548,-334.4847 871.4175,-330.2353\"/>\n",
       "</g>\n",
       "<!-- 47 -->\n",
       "<g id=\"node48\" class=\"node\">\n",
       "<title>47</title>\n",
       "<polygon fill=\"none\" stroke=\"#000000\" points=\"1007,-324 912,-324 912,-288 1007,-288 1007,-324\"/>\n",
       "<text text-anchor=\"middle\" x=\"959.5\" y=\"-302.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">grade &lt;= 85.5</text>\n",
       "</g>\n",
       "<!-- 43&#45;&gt;47 -->\n",
       "<g id=\"edge47\" class=\"edge\">\n",
       "<title>43&#45;&gt;47</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M917.6312,-359.8314C924.0811,-351.5386 931.8445,-341.557 938.9252,-332.4533\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"941.8019,-334.4556 945.1786,-324.4133 936.2764,-330.158 941.8019,-334.4556\"/>\n",
       "</g>\n",
       "<!-- 45 -->\n",
       "<g id=\"node46\" class=\"node\">\n",
       "<title>45</title>\n",
       "<polygon fill=\"none\" stroke=\"#000000\" points=\"794.5,-252 714.5,-252 714.5,-216 794.5,-216 794.5,-252\"/>\n",
       "<text text-anchor=\"middle\" x=\"754.5\" y=\"-230.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">class = Yes</text>\n",
       "</g>\n",
       "<!-- 44&#45;&gt;45 -->\n",
       "<g id=\"edge45\" class=\"edge\">\n",
       "<title>44&#45;&gt;45</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M824.7798,-287.8314C813.0906,-278.8779 798.8312,-267.9558 786.2191,-258.2955\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"788.2797,-255.4651 778.2126,-252.1628 784.0231,-261.0222 788.2797,-255.4651\"/>\n",
       "</g>\n",
       "<!-- 46 -->\n",
       "<g id=\"node47\" class=\"node\">\n",
       "<title>46</title>\n",
       "<polygon fill=\"none\" stroke=\"#000000\" points=\"892.5,-252 812.5,-252 812.5,-216 892.5,-216 892.5,-252\"/>\n",
       "<text text-anchor=\"middle\" x=\"852.5\" y=\"-230.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">class = Yes</text>\n",
       "</g>\n",
       "<!-- 44&#45;&gt;46 -->\n",
       "<g id=\"edge46\" class=\"edge\">\n",
       "<title>44&#45;&gt;46</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M849.5094,-287.8314C849.9372,-280.131 850.4459,-270.9743 850.9213,-262.4166\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"854.4169,-262.592 851.477,-252.4133 847.4276,-262.2037 854.4169,-262.592\"/>\n",
       "</g>\n",
       "<!-- 48 -->\n",
       "<g id=\"node49\" class=\"node\">\n",
       "<title>48</title>\n",
       "<polygon fill=\"none\" stroke=\"#000000\" points=\"1002,-252 911,-252 911,-216 1002,-216 1002,-252\"/>\n",
       "<text text-anchor=\"middle\" x=\"956.5\" y=\"-230.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">meat &lt;= 53.5</text>\n",
       "</g>\n",
       "<!-- 47&#45;&gt;48 -->\n",
       "<g id=\"edge48\" class=\"edge\">\n",
       "<title>47&#45;&gt;48</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M958.743,-287.8314C958.4221,-280.131 958.0406,-270.9743 957.684,-262.4166\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"961.1806,-262.2589 957.2672,-252.4133 954.1867,-262.5503 961.1806,-262.2589\"/>\n",
       "</g>\n",
       "<!-- 51 -->\n",
       "<g id=\"node52\" class=\"node\">\n",
       "<title>51</title>\n",
       "<polygon fill=\"none\" stroke=\"#000000\" points=\"1100.5,-252 1020.5,-252 1020.5,-216 1100.5,-216 1100.5,-252\"/>\n",
       "<text text-anchor=\"middle\" x=\"1060.5\" y=\"-230.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">class = Yes</text>\n",
       "</g>\n",
       "<!-- 47&#45;&gt;51 -->\n",
       "<g id=\"edge51\" class=\"edge\">\n",
       "<title>47&#45;&gt;51</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M984.9866,-287.8314C997.6659,-278.7927 1013.1596,-267.7476 1026.8055,-258.0198\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1028.9105,-260.8176 1035.0216,-252.1628 1024.8471,-255.1176 1028.9105,-260.8176\"/>\n",
       "</g>\n",
       "<!-- 49 -->\n",
       "<g id=\"node50\" class=\"node\">\n",
       "<title>49</title>\n",
       "<polygon fill=\"none\" stroke=\"#000000\" points=\"946.5,-180 870.5,-180 870.5,-144 946.5,-144 946.5,-180\"/>\n",
       "<text text-anchor=\"middle\" x=\"908.5\" y=\"-158.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">class = No</text>\n",
       "</g>\n",
       "<!-- 48&#45;&gt;49 -->\n",
       "<g id=\"edge49\" class=\"edge\">\n",
       "<title>48&#45;&gt;49</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M944.3876,-215.8314C938.9719,-207.7079 932.4758,-197.9637 926.5079,-189.0118\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"929.2347,-186.7923 920.7755,-180.4133 923.4104,-190.6753 929.2347,-186.7923\"/>\n",
       "</g>\n",
       "<!-- 50 -->\n",
       "<g id=\"node51\" class=\"node\">\n",
       "<title>50</title>\n",
       "<polygon fill=\"none\" stroke=\"#000000\" points=\"1044.5,-180 964.5,-180 964.5,-144 1044.5,-144 1044.5,-180\"/>\n",
       "<text text-anchor=\"middle\" x=\"1004.5\" y=\"-158.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">class = Yes</text>\n",
       "</g>\n",
       "<!-- 48&#45;&gt;50 -->\n",
       "<g id=\"edge50\" class=\"edge\">\n",
       "<title>48&#45;&gt;50</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M968.6124,-215.8314C974.0281,-207.7079 980.5242,-197.9637 986.4921,-189.0118\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"989.5896,-190.6753 992.2245,-180.4133 983.7653,-186.7923 989.5896,-190.6753\"/>\n",
       "</g>\n",
       "<!-- 53 -->\n",
       "<g id=\"node54\" class=\"node\">\n",
       "<title>53</title>\n",
       "<polygon fill=\"none\" stroke=\"#000000\" points=\"1216,-324 1121,-324 1121,-288 1216,-288 1216,-324\"/>\n",
       "<text text-anchor=\"middle\" x=\"1168.5\" y=\"-302.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">grade &lt;= 82.5</text>\n",
       "</g>\n",
       "<!-- 52&#45;&gt;53 -->\n",
       "<g id=\"edge53\" class=\"edge\">\n",
       "<title>52&#45;&gt;53</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M1168.5,-359.8314C1168.5,-352.131 1168.5,-342.9743 1168.5,-334.4166\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1172.0001,-334.4132 1168.5,-324.4133 1165.0001,-334.4133 1172.0001,-334.4132\"/>\n",
       "</g>\n",
       "<!-- 56 -->\n",
       "<g id=\"node57\" class=\"node\">\n",
       "<title>56</title>\n",
       "<polygon fill=\"none\" stroke=\"#000000\" points=\"1356,-324 1261,-324 1261,-288 1356,-288 1356,-324\"/>\n",
       "<text text-anchor=\"middle\" x=\"1308.5\" y=\"-302.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">grade &lt;= 82.5</text>\n",
       "</g>\n",
       "<!-- 52&#45;&gt;56 -->\n",
       "<g id=\"edge56\" class=\"edge\">\n",
       "<title>52&#45;&gt;56</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M1203.8279,-359.8314C1222.1493,-350.4089 1244.7102,-338.8062 1264.1895,-328.7883\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1265.8912,-331.8489 1273.1834,-324.1628 1262.6898,-325.6239 1265.8912,-331.8489\"/>\n",
       "</g>\n",
       "<!-- 54 -->\n",
       "<g id=\"node55\" class=\"node\">\n",
       "<title>54</title>\n",
       "<polygon fill=\"none\" stroke=\"#000000\" points=\"1194.5,-252 1118.5,-252 1118.5,-216 1194.5,-216 1194.5,-252\"/>\n",
       "<text text-anchor=\"middle\" x=\"1156.5\" y=\"-230.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">class = No</text>\n",
       "</g>\n",
       "<!-- 53&#45;&gt;54 -->\n",
       "<g id=\"edge54\" class=\"edge\">\n",
       "<title>53&#45;&gt;54</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M1165.4719,-287.8314C1164.1885,-280.131 1162.6624,-270.9743 1161.2361,-262.4166\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1164.6653,-261.7018 1159.5689,-252.4133 1157.7606,-262.8526 1164.6653,-261.7018\"/>\n",
       "</g>\n",
       "<!-- 55 -->\n",
       "<g id=\"node56\" class=\"node\">\n",
       "<title>55</title>\n",
       "<polygon fill=\"none\" stroke=\"#000000\" points=\"1288.5,-252 1212.5,-252 1212.5,-216 1288.5,-216 1288.5,-252\"/>\n",
       "<text text-anchor=\"middle\" x=\"1250.5\" y=\"-230.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">class = No</text>\n",
       "</g>\n",
       "<!-- 53&#45;&gt;55 -->\n",
       "<g id=\"edge55\" class=\"edge\">\n",
       "<title>53&#45;&gt;55</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M1189.1921,-287.8314C1199.1948,-279.0485 1211.355,-268.3712 1222.1999,-258.8489\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1224.6094,-261.3909 1229.8146,-252.1628 1219.9908,-256.1308 1224.6094,-261.3909\"/>\n",
       "</g>\n",
       "<!-- 57 -->\n",
       "<g id=\"node58\" class=\"node\">\n",
       "<title>57</title>\n",
       "<polygon fill=\"none\" stroke=\"#000000\" points=\"1386.5,-252 1306.5,-252 1306.5,-216 1386.5,-216 1386.5,-252\"/>\n",
       "<text text-anchor=\"middle\" x=\"1346.5\" y=\"-230.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">class = Yes</text>\n",
       "</g>\n",
       "<!-- 56&#45;&gt;57 -->\n",
       "<g id=\"edge57\" class=\"edge\">\n",
       "<title>56&#45;&gt;57</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M1318.089,-287.8314C1322.3317,-279.7925 1327.4121,-270.1666 1332.096,-261.2918\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1335.2096,-262.8908 1336.7819,-252.4133 1329.0189,-259.6235 1335.2096,-262.8908\"/>\n",
       "</g>\n",
       "<!-- 58 -->\n",
       "<g id=\"node59\" class=\"node\">\n",
       "<title>58</title>\n",
       "<polygon fill=\"none\" stroke=\"#000000\" points=\"1484.5,-252 1404.5,-252 1404.5,-216 1484.5,-216 1484.5,-252\"/>\n",
       "<text text-anchor=\"middle\" x=\"1444.5\" y=\"-230.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">class = Yes</text>\n",
       "</g>\n",
       "<!-- 56&#45;&gt;58 -->\n",
       "<g id=\"edge58\" class=\"edge\">\n",
       "<title>56&#45;&gt;58</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M1342.8185,-287.8314C1360.5359,-278.4516 1382.3345,-266.9112 1401.1984,-256.9244\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1402.9922,-259.935 1410.1924,-252.1628 1399.7169,-253.7485 1402.9922,-259.935\"/>\n",
       "</g>\n",
       "<!-- 60 -->\n",
       "<g id=\"node61\" class=\"node\">\n",
       "<title>60</title>\n",
       "<polygon fill=\"none\" stroke=\"#000000\" points=\"1431,-540 1336,-540 1336,-504 1431,-504 1431,-540\"/>\n",
       "<text text-anchor=\"middle\" x=\"1383.5\" y=\"-518.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">grade &lt;= 82.5</text>\n",
       "</g>\n",
       "<!-- 59&#45;&gt;60 -->\n",
       "<g id=\"edge60\" class=\"edge\">\n",
       "<title>59&#45;&gt;60</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M1412.6587,-575.8314C1408.3043,-567.7925 1403.0902,-558.1666 1398.2831,-549.2918\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1401.3143,-547.5392 1393.4739,-540.4133 1395.1592,-550.8732 1401.3143,-547.5392\"/>\n",
       "</g>\n",
       "<!-- 67 -->\n",
       "<g id=\"node68\" class=\"node\">\n",
       "<title>67</title>\n",
       "<polygon fill=\"none\" stroke=\"#000000\" points=\"1540,-540 1449,-540 1449,-504 1540,-504 1540,-540\"/>\n",
       "<text text-anchor=\"middle\" x=\"1494.5\" y=\"-518.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">meat &lt;= 85.5</text>\n",
       "</g>\n",
       "<!-- 59&#45;&gt;67 -->\n",
       "<g id=\"edge67\" class=\"edge\">\n",
       "<title>59&#45;&gt;67</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M1440.6686,-575.8314C1449.2152,-567.2848 1459.5557,-556.9443 1468.8802,-547.6198\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1471.4905,-549.9592 1476.0867,-540.4133 1466.5408,-545.0095 1471.4905,-549.9592\"/>\n",
       "</g>\n",
       "<!-- 61 -->\n",
       "<g id=\"node62\" class=\"node\">\n",
       "<title>61</title>\n",
       "<polygon fill=\"none\" stroke=\"#000000\" points=\"1342,-468 1251,-468 1251,-432 1342,-432 1342,-468\"/>\n",
       "<text text-anchor=\"middle\" x=\"1296.5\" y=\"-446.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">meat &lt;= 88.0</text>\n",
       "</g>\n",
       "<!-- 60&#45;&gt;61 -->\n",
       "<g id=\"edge61\" class=\"edge\">\n",
       "<title>60&#45;&gt;61</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M1361.5462,-503.8314C1350.8305,-494.9632 1337.7811,-484.1637 1326.191,-474.5718\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1328.3822,-471.8422 1318.4467,-468.1628 1323.9192,-477.2349 1328.3822,-471.8422\"/>\n",
       "</g>\n",
       "<!-- 66 -->\n",
       "<g id=\"node67\" class=\"node\">\n",
       "<title>66</title>\n",
       "<polygon fill=\"none\" stroke=\"#000000\" points=\"1436.5,-468 1360.5,-468 1360.5,-432 1436.5,-432 1436.5,-468\"/>\n",
       "<text text-anchor=\"middle\" x=\"1398.5\" y=\"-446.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">class = No</text>\n",
       "</g>\n",
       "<!-- 60&#45;&gt;66 -->\n",
       "<g id=\"edge66\" class=\"edge\">\n",
       "<title>60&#45;&gt;66</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M1387.2851,-503.8314C1388.8894,-496.131 1390.797,-486.9743 1392.5799,-478.4166\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1396.0507,-478.9169 1394.6639,-468.4133 1389.1979,-477.4892 1396.0507,-478.9169\"/>\n",
       "</g>\n",
       "<!-- 62 -->\n",
       "<g id=\"node63\" class=\"node\">\n",
       "<title>62</title>\n",
       "<polygon fill=\"none\" stroke=\"#000000\" points=\"1336.5,-396 1256.5,-396 1256.5,-360 1336.5,-360 1336.5,-396\"/>\n",
       "<text text-anchor=\"middle\" x=\"1296.5\" y=\"-374.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">class = Yes</text>\n",
       "</g>\n",
       "<!-- 61&#45;&gt;62 -->\n",
       "<g id=\"edge62\" class=\"edge\">\n",
       "<title>61&#45;&gt;62</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M1296.5,-431.8314C1296.5,-424.131 1296.5,-414.9743 1296.5,-406.4166\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1300.0001,-406.4132 1296.5,-396.4133 1293.0001,-406.4133 1300.0001,-406.4132\"/>\n",
       "</g>\n",
       "<!-- 63 -->\n",
       "<g id=\"node64\" class=\"node\">\n",
       "<title>63</title>\n",
       "<polygon fill=\"none\" stroke=\"#000000\" points=\"1462,-396 1367,-396 1367,-360 1462,-360 1462,-396\"/>\n",
       "<text text-anchor=\"middle\" x=\"1414.5\" y=\"-374.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">grade &lt;= 76.0</text>\n",
       "</g>\n",
       "<!-- 61&#45;&gt;63 -->\n",
       "<g id=\"edge63\" class=\"edge\">\n",
       "<title>61&#45;&gt;63</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M1326.2764,-431.8314C1341.3693,-422.6221 1359.8757,-411.3301 1376.0343,-401.4706\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1378.0198,-404.3593 1384.7331,-396.1628 1374.3737,-398.3838 1378.0198,-404.3593\"/>\n",
       "</g>\n",
       "<!-- 64 -->\n",
       "<g id=\"node65\" class=\"node\">\n",
       "<title>64</title>\n",
       "<polygon fill=\"none\" stroke=\"#000000\" points=\"1454.5,-324 1374.5,-324 1374.5,-288 1454.5,-288 1454.5,-324\"/>\n",
       "<text text-anchor=\"middle\" x=\"1414.5\" y=\"-302.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">class = Yes</text>\n",
       "</g>\n",
       "<!-- 63&#45;&gt;64 -->\n",
       "<g id=\"edge64\" class=\"edge\">\n",
       "<title>63&#45;&gt;64</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M1414.5,-359.8314C1414.5,-352.131 1414.5,-342.9743 1414.5,-334.4166\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1418.0001,-334.4132 1414.5,-324.4133 1411.0001,-334.4133 1418.0001,-334.4132\"/>\n",
       "</g>\n",
       "<!-- 65 -->\n",
       "<g id=\"node66\" class=\"node\">\n",
       "<title>65</title>\n",
       "<polygon fill=\"none\" stroke=\"#000000\" points=\"1548.5,-324 1472.5,-324 1472.5,-288 1548.5,-288 1548.5,-324\"/>\n",
       "<text text-anchor=\"middle\" x=\"1510.5\" y=\"-302.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">class = No</text>\n",
       "</g>\n",
       "<!-- 63&#45;&gt;65 -->\n",
       "<g id=\"edge65\" class=\"edge\">\n",
       "<title>63&#45;&gt;65</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M1438.7249,-359.8314C1450.6628,-350.8779 1465.2256,-339.9558 1478.106,-330.2955\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1480.3829,-332.9629 1486.2829,-324.1628 1476.1829,-327.3629 1480.3829,-332.9629\"/>\n",
       "</g>\n",
       "<!-- 68 -->\n",
       "<g id=\"node69\" class=\"node\">\n",
       "<title>68</title>\n",
       "<polygon fill=\"none\" stroke=\"#000000\" points=\"1534.5,-468 1454.5,-468 1454.5,-432 1534.5,-432 1534.5,-468\"/>\n",
       "<text text-anchor=\"middle\" x=\"1494.5\" y=\"-446.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">class = Yes</text>\n",
       "</g>\n",
       "<!-- 67&#45;&gt;68 -->\n",
       "<g id=\"edge68\" class=\"edge\">\n",
       "<title>67&#45;&gt;68</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M1494.5,-503.8314C1494.5,-496.131 1494.5,-486.9743 1494.5,-478.4166\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1498.0001,-478.4132 1494.5,-468.4133 1491.0001,-478.4133 1498.0001,-478.4132\"/>\n",
       "</g>\n",
       "<!-- 69 -->\n",
       "<g id=\"node70\" class=\"node\">\n",
       "<title>69</title>\n",
       "<polygon fill=\"none\" stroke=\"#000000\" points=\"1644,-468 1553,-468 1553,-432 1644,-432 1644,-468\"/>\n",
       "<text text-anchor=\"middle\" x=\"1598.5\" y=\"-446.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">meat &lt;= 88.0</text>\n",
       "</g>\n",
       "<!-- 67&#45;&gt;69 -->\n",
       "<g id=\"edge69\" class=\"edge\">\n",
       "<title>67&#45;&gt;69</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M1520.7436,-503.8314C1533.7995,-494.7927 1549.7535,-483.7476 1563.8047,-474.0198\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1566.0351,-476.7326 1572.2648,-468.1628 1562.0506,-470.9773 1566.0351,-476.7326\"/>\n",
       "</g>\n",
       "<!-- 70 -->\n",
       "<g id=\"node71\" class=\"node\">\n",
       "<title>70</title>\n",
       "<polygon fill=\"none\" stroke=\"#000000\" points=\"1599.5,-396 1519.5,-396 1519.5,-360 1599.5,-360 1599.5,-396\"/>\n",
       "<text text-anchor=\"middle\" x=\"1559.5\" y=\"-374.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">class = Yes</text>\n",
       "</g>\n",
       "<!-- 69&#45;&gt;70 -->\n",
       "<g id=\"edge70\" class=\"edge\">\n",
       "<title>69&#45;&gt;70</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M1588.6587,-431.8314C1584.3043,-423.7925 1579.0902,-414.1666 1574.2831,-405.2918\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1577.3143,-403.5392 1569.4739,-396.4133 1571.1592,-406.8732 1577.3143,-403.5392\"/>\n",
       "</g>\n",
       "<!-- 71 -->\n",
       "<g id=\"node72\" class=\"node\">\n",
       "<title>71</title>\n",
       "<polygon fill=\"none\" stroke=\"#000000\" points=\"1697.5,-396 1617.5,-396 1617.5,-360 1697.5,-360 1697.5,-396\"/>\n",
       "<text text-anchor=\"middle\" x=\"1657.5\" y=\"-374.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">class = Yes</text>\n",
       "</g>\n",
       "<!-- 69&#45;&gt;71 -->\n",
       "<g id=\"edge71\" class=\"edge\">\n",
       "<title>69&#45;&gt;71</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M1613.3882,-431.8314C1620.253,-423.454 1628.5301,-413.3531 1636.0511,-404.1749\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1638.7803,-406.3665 1642.4114,-396.4133 1633.3659,-401.9297 1638.7803,-406.3665\"/>\n",
       "</g>\n",
       "<!-- 74 -->\n",
       "<g id=\"node75\" class=\"node\">\n",
       "<title>74</title>\n",
       "<polygon fill=\"none\" stroke=\"#000000\" points=\"1726,-684 1631,-684 1631,-648 1726,-648 1726,-684\"/>\n",
       "<text text-anchor=\"middle\" x=\"1678.5\" y=\"-662.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">grade &lt;= 97.5</text>\n",
       "</g>\n",
       "<!-- 73&#45;&gt;74 -->\n",
       "<g id=\"edge74\" class=\"edge\">\n",
       "<title>73&#45;&gt;74</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M1722.6118,-719.8314C1715.747,-711.454 1707.4699,-701.3531 1699.9489,-692.1749\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1702.6341,-689.9297 1693.5886,-684.4133 1697.2197,-694.3665 1702.6341,-689.9297\"/>\n",
       "</g>\n",
       "<!-- 79 -->\n",
       "<g id=\"node80\" class=\"node\">\n",
       "<title>79</title>\n",
       "<polygon fill=\"none\" stroke=\"#000000\" points=\"1842,-684 1751,-684 1751,-648 1842,-648 1842,-684\"/>\n",
       "<text text-anchor=\"middle\" x=\"1796.5\" y=\"-662.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">meat &lt;= 85.5</text>\n",
       "</g>\n",
       "<!-- 73&#45;&gt;79 -->\n",
       "<g id=\"edge79\" class=\"edge\">\n",
       "<title>73&#45;&gt;79</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M1752.3882,-719.8314C1759.253,-711.454 1767.5301,-701.3531 1775.0511,-692.1749\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1777.7803,-694.3665 1781.4114,-684.4133 1772.3659,-689.9297 1777.7803,-694.3665\"/>\n",
       "</g>\n",
       "<!-- 75 -->\n",
       "<g id=\"node76\" class=\"node\">\n",
       "<title>75</title>\n",
       "<polygon fill=\"none\" stroke=\"#000000\" points=\"1607.5,-612 1527.5,-612 1527.5,-576 1607.5,-576 1607.5,-612\"/>\n",
       "<text text-anchor=\"middle\" x=\"1567.5\" y=\"-590.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">class = Yes</text>\n",
       "</g>\n",
       "<!-- 74&#45;&gt;75 -->\n",
       "<g id=\"edge75\" class=\"edge\">\n",
       "<title>74&#45;&gt;75</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M1650.49,-647.8314C1636.4239,-638.7074 1619.206,-627.539 1604.1067,-617.7449\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1605.7953,-614.6684 1595.501,-612.1628 1601.986,-620.5412 1605.7953,-614.6684\"/>\n",
       "</g>\n",
       "<!-- 76 -->\n",
       "<g id=\"node77\" class=\"node\">\n",
       "<title>76</title>\n",
       "<polygon fill=\"none\" stroke=\"#000000\" points=\"1731,-612 1626,-612 1626,-576 1731,-576 1731,-612\"/>\n",
       "<text text-anchor=\"middle\" x=\"1678.5\" y=\"-590.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">meat &lt;= 14.355</text>\n",
       "</g>\n",
       "<!-- 74&#45;&gt;76 -->\n",
       "<g id=\"edge76\" class=\"edge\">\n",
       "<title>74&#45;&gt;76</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M1678.5,-647.8314C1678.5,-640.131 1678.5,-630.9743 1678.5,-622.4166\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1682.0001,-622.4132 1678.5,-612.4133 1675.0001,-622.4133 1682.0001,-622.4132\"/>\n",
       "</g>\n",
       "<!-- 77 -->\n",
       "<g id=\"node78\" class=\"node\">\n",
       "<title>77</title>\n",
       "<polygon fill=\"none\" stroke=\"#000000\" points=\"1638.5,-540 1558.5,-540 1558.5,-504 1638.5,-504 1638.5,-540\"/>\n",
       "<text text-anchor=\"middle\" x=\"1598.5\" y=\"-518.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">class = Yes</text>\n",
       "</g>\n",
       "<!-- 76&#45;&gt;77 -->\n",
       "<g id=\"edge77\" class=\"edge\">\n",
       "<title>76&#45;&gt;77</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M1658.3126,-575.8314C1648.6486,-567.1337 1636.9204,-556.5783 1626.4184,-547.1265\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1628.4553,-544.251 1618.6809,-540.1628 1623.7725,-549.454 1628.4553,-544.251\"/>\n",
       "</g>\n",
       "<!-- 78 -->\n",
       "<g id=\"node79\" class=\"node\">\n",
       "<title>78</title>\n",
       "<polygon fill=\"none\" stroke=\"#000000\" points=\"1732.5,-540 1656.5,-540 1656.5,-504 1732.5,-504 1732.5,-540\"/>\n",
       "<text text-anchor=\"middle\" x=\"1694.5\" y=\"-518.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">class = No</text>\n",
       "</g>\n",
       "<!-- 76&#45;&gt;78 -->\n",
       "<g id=\"edge78\" class=\"edge\">\n",
       "<title>76&#45;&gt;78</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M1682.5375,-575.8314C1684.2487,-568.131 1686.2835,-558.9743 1688.1852,-550.4166\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1691.6554,-550.9344 1690.4082,-540.4133 1684.8221,-549.4159 1691.6554,-550.9344\"/>\n",
       "</g>\n",
       "<!-- 80 -->\n",
       "<g id=\"node81\" class=\"node\">\n",
       "<title>80</title>\n",
       "<polygon fill=\"none\" stroke=\"#000000\" points=\"1844,-612 1749,-612 1749,-576 1844,-576 1844,-612\"/>\n",
       "<text text-anchor=\"middle\" x=\"1796.5\" y=\"-590.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">grade &lt;= 90.5</text>\n",
       "</g>\n",
       "<!-- 79&#45;&gt;80 -->\n",
       "<g id=\"edge80\" class=\"edge\">\n",
       "<title>79&#45;&gt;80</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M1796.5,-647.8314C1796.5,-640.131 1796.5,-630.9743 1796.5,-622.4166\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1800.0001,-622.4132 1796.5,-612.4133 1793.0001,-622.4133 1800.0001,-622.4132\"/>\n",
       "</g>\n",
       "<!-- 87 -->\n",
       "<g id=\"node88\" class=\"node\">\n",
       "<title>87</title>\n",
       "<polygon fill=\"none\" stroke=\"#000000\" points=\"1942.5,-612 1862.5,-612 1862.5,-576 1942.5,-576 1942.5,-612\"/>\n",
       "<text text-anchor=\"middle\" x=\"1902.5\" y=\"-590.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">class = Yes</text>\n",
       "</g>\n",
       "<!-- 79&#45;&gt;87 -->\n",
       "<g id=\"edge87\" class=\"edge\">\n",
       "<title>79&#45;&gt;87</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M1823.2483,-647.8314C1836.5553,-638.7927 1852.816,-627.7476 1867.1375,-618.0198\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1869.4547,-620.677 1875.7603,-612.1628 1865.5215,-614.8864 1869.4547,-620.677\"/>\n",
       "</g>\n",
       "<!-- 81 -->\n",
       "<g id=\"node82\" class=\"node\">\n",
       "<title>81</title>\n",
       "<polygon fill=\"none\" stroke=\"#000000\" points=\"1842,-540 1751,-540 1751,-504 1842,-504 1842,-540\"/>\n",
       "<text text-anchor=\"middle\" x=\"1796.5\" y=\"-518.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">meat &lt;= 80.0</text>\n",
       "</g>\n",
       "<!-- 80&#45;&gt;81 -->\n",
       "<g id=\"edge81\" class=\"edge\">\n",
       "<title>80&#45;&gt;81</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M1796.5,-575.8314C1796.5,-568.131 1796.5,-558.9743 1796.5,-550.4166\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1800.0001,-550.4132 1796.5,-540.4133 1793.0001,-550.4133 1800.0001,-550.4132\"/>\n",
       "</g>\n",
       "<!-- 86 -->\n",
       "<g id=\"node87\" class=\"node\">\n",
       "<title>86</title>\n",
       "<polygon fill=\"none\" stroke=\"#000000\" points=\"1940.5,-540 1860.5,-540 1860.5,-504 1940.5,-504 1940.5,-540\"/>\n",
       "<text text-anchor=\"middle\" x=\"1900.5\" y=\"-518.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">class = Yes</text>\n",
       "</g>\n",
       "<!-- 80&#45;&gt;86 -->\n",
       "<g id=\"edge86\" class=\"edge\">\n",
       "<title>80&#45;&gt;86</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M1822.7436,-575.8314C1835.7995,-566.7927 1851.7535,-555.7476 1865.8047,-546.0198\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1868.0351,-548.7326 1874.2648,-540.1628 1864.0506,-542.9773 1868.0351,-548.7326\"/>\n",
       "</g>\n",
       "<!-- 82 -->\n",
       "<g id=\"node83\" class=\"node\">\n",
       "<title>82</title>\n",
       "<polygon fill=\"none\" stroke=\"#000000\" points=\"1821,-468 1730,-468 1730,-432 1821,-432 1821,-468\"/>\n",
       "<text text-anchor=\"middle\" x=\"1775.5\" y=\"-446.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">meat &lt;= 73.0</text>\n",
       "</g>\n",
       "<!-- 81&#45;&gt;82 -->\n",
       "<g id=\"edge82\" class=\"edge\">\n",
       "<title>81&#45;&gt;82</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M1791.2008,-503.8314C1788.9302,-496.0463 1786.2254,-486.7729 1783.706,-478.1347\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1787.0306,-477.0332 1780.8705,-468.4133 1780.3106,-478.9933 1787.0306,-477.0332\"/>\n",
       "</g>\n",
       "<!-- 85 -->\n",
       "<g id=\"node86\" class=\"node\">\n",
       "<title>85</title>\n",
       "<polygon fill=\"none\" stroke=\"#000000\" points=\"1915.5,-468 1839.5,-468 1839.5,-432 1915.5,-432 1915.5,-468\"/>\n",
       "<text text-anchor=\"middle\" x=\"1877.5\" y=\"-446.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">class = No</text>\n",
       "</g>\n",
       "<!-- 81&#45;&gt;85 -->\n",
       "<g id=\"edge85\" class=\"edge\">\n",
       "<title>81&#45;&gt;85</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M1816.9397,-503.8314C1826.8205,-495.0485 1838.8324,-484.3712 1849.545,-474.8489\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1851.918,-477.4224 1857.0668,-468.1628 1847.2674,-472.1906 1851.918,-477.4224\"/>\n",
       "</g>\n",
       "<!-- 83 -->\n",
       "<g id=\"node84\" class=\"node\">\n",
       "<title>83</title>\n",
       "<polygon fill=\"none\" stroke=\"#000000\" points=\"1802.5,-396 1726.5,-396 1726.5,-360 1802.5,-360 1802.5,-396\"/>\n",
       "<text text-anchor=\"middle\" x=\"1764.5\" y=\"-374.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">class = No</text>\n",
       "</g>\n",
       "<!-- 82&#45;&gt;83 -->\n",
       "<g id=\"edge83\" class=\"edge\">\n",
       "<title>82&#45;&gt;83</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M1772.7242,-431.8314C1771.5478,-424.131 1770.1489,-414.9743 1768.8414,-406.4166\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1772.2833,-405.7699 1767.3131,-396.4133 1765.3636,-406.8272 1772.2833,-405.7699\"/>\n",
       "</g>\n",
       "<!-- 84 -->\n",
       "<g id=\"node85\" class=\"node\">\n",
       "<title>84</title>\n",
       "<polygon fill=\"none\" stroke=\"#000000\" points=\"1900.5,-396 1820.5,-396 1820.5,-360 1900.5,-360 1900.5,-396\"/>\n",
       "<text text-anchor=\"middle\" x=\"1860.5\" y=\"-374.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">class = Yes</text>\n",
       "</g>\n",
       "<!-- 82&#45;&gt;84 -->\n",
       "<g id=\"edge84\" class=\"edge\">\n",
       "<title>82&#45;&gt;84</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M1796.9491,-431.8314C1807.3178,-423.0485 1819.9229,-412.3712 1831.1646,-402.8489\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1833.6895,-405.297 1839.0578,-396.1628 1829.1651,-399.9556 1833.6895,-405.297\"/>\n",
       "</g>\n",
       "<!-- 89 -->\n",
       "<g id=\"node90\" class=\"node\">\n",
       "<title>89</title>\n",
       "<polygon fill=\"none\" stroke=\"#000000\" points=\"1929.5,-828 1853.5,-828 1853.5,-792 1929.5,-792 1929.5,-828\"/>\n",
       "<text text-anchor=\"middle\" x=\"1891.5\" y=\"-806.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">class = No</text>\n",
       "</g>\n",
       "<!-- 88&#45;&gt;89 -->\n",
       "<g id=\"edge89\" class=\"edge\">\n",
       "<title>88&#45;&gt;89</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M1891.5,-863.8314C1891.5,-856.131 1891.5,-846.9743 1891.5,-838.4166\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1895.0001,-838.4132 1891.5,-828.4133 1888.0001,-838.4133 1895.0001,-838.4132\"/>\n",
       "</g>\n",
       "<!-- 90 -->\n",
       "<g id=\"node91\" class=\"node\">\n",
       "<title>90</title>\n",
       "<polygon fill=\"none\" stroke=\"#000000\" points=\"2200,-828 2105,-828 2105,-792 2200,-792 2200,-828\"/>\n",
       "<text text-anchor=\"middle\" x=\"2152.5\" y=\"-806.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">grade &lt;= 84.0</text>\n",
       "</g>\n",
       "<!-- 88&#45;&gt;90 -->\n",
       "<g id=\"edge90\" class=\"edge\">\n",
       "<title>88&#45;&gt;90</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M1939.0679,-868.8778C1982.9943,-856.7602 2048.3257,-838.7377 2095.1271,-825.827\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"2096.1092,-829.1869 2104.8183,-823.1536 2094.2476,-822.439 2096.1092,-829.1869\"/>\n",
       "</g>\n",
       "<!-- 91 -->\n",
       "<g id=\"node92\" class=\"node\">\n",
       "<title>91</title>\n",
       "<polygon fill=\"none\" stroke=\"#000000\" points=\"2200,-756 2105,-756 2105,-720 2200,-720 2200,-756\"/>\n",
       "<text text-anchor=\"middle\" x=\"2152.5\" y=\"-734.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">grade &lt;= 79.5</text>\n",
       "</g>\n",
       "<!-- 90&#45;&gt;91 -->\n",
       "<g id=\"edge91\" class=\"edge\">\n",
       "<title>90&#45;&gt;91</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M2152.5,-791.8314C2152.5,-784.131 2152.5,-774.9743 2152.5,-766.4166\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"2156.0001,-766.4132 2152.5,-756.4133 2149.0001,-766.4133 2156.0001,-766.4132\"/>\n",
       "</g>\n",
       "<!-- 104 -->\n",
       "<g id=\"node105\" class=\"node\">\n",
       "<title>104</title>\n",
       "<polygon fill=\"none\" stroke=\"#000000\" points=\"2366,-756 2271,-756 2271,-720 2366,-720 2366,-756\"/>\n",
       "<text text-anchor=\"middle\" x=\"2318.5\" y=\"-734.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">grade &lt;= 86.5</text>\n",
       "</g>\n",
       "<!-- 90&#45;&gt;104 -->\n",
       "<g id=\"edge104\" class=\"edge\">\n",
       "<title>90&#45;&gt;104</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M2194.3888,-791.8314C2216.5903,-782.2018 2244.0422,-770.295 2267.4784,-760.1299\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"2269.1309,-763.2282 2276.9124,-756.038 2266.3455,-756.8062 2269.1309,-763.2282\"/>\n",
       "</g>\n",
       "<!-- 92 -->\n",
       "<g id=\"node93\" class=\"node\">\n",
       "<title>92</title>\n",
       "<polygon fill=\"none\" stroke=\"#000000\" points=\"2145,-684 2050,-684 2050,-648 2145,-648 2145,-684\"/>\n",
       "<text text-anchor=\"middle\" x=\"2097.5\" y=\"-662.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">grade &lt;= 71.0</text>\n",
       "</g>\n",
       "<!-- 91&#45;&gt;92 -->\n",
       "<g id=\"edge92\" class=\"edge\">\n",
       "<title>91&#45;&gt;92</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M2138.6212,-719.8314C2132.2864,-711.5386 2124.6616,-701.557 2117.7074,-692.4533\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"2120.4175,-690.2353 2111.5657,-684.4133 2114.8548,-694.4847 2120.4175,-690.2353\"/>\n",
       "</g>\n",
       "<!-- 99 -->\n",
       "<g id=\"node100\" class=\"node\">\n",
       "<title>99</title>\n",
       "<polygon fill=\"none\" stroke=\"#000000\" points=\"2258,-684 2163,-684 2163,-648 2258,-648 2258,-684\"/>\n",
       "<text text-anchor=\"middle\" x=\"2210.5\" y=\"-662.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">grade &lt;= 81.0</text>\n",
       "</g>\n",
       "<!-- 91&#45;&gt;99 -->\n",
       "<g id=\"edge99\" class=\"edge\">\n",
       "<title>91&#45;&gt;99</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M2167.1358,-719.8314C2173.8161,-711.5386 2181.8568,-701.557 2189.1904,-692.4533\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"2192.1194,-694.3965 2195.6671,-684.4133 2186.6681,-690.0052 2192.1194,-694.3965\"/>\n",
       "</g>\n",
       "<!-- 93 -->\n",
       "<g id=\"node94\" class=\"node\">\n",
       "<title>93</title>\n",
       "<polygon fill=\"none\" stroke=\"#000000\" points=\"2036.5,-612 1960.5,-612 1960.5,-576 2036.5,-576 2036.5,-612\"/>\n",
       "<text text-anchor=\"middle\" x=\"1998.5\" y=\"-590.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">class = No</text>\n",
       "</g>\n",
       "<!-- 92&#45;&gt;93 -->\n",
       "<g id=\"edge93\" class=\"edge\">\n",
       "<title>92&#45;&gt;93</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M2072.5181,-647.8314C2060.2072,-638.8779 2045.1893,-627.9558 2031.9063,-618.2955\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"2033.6199,-615.214 2023.4739,-612.1628 2029.5027,-620.8752 2033.6199,-615.214\"/>\n",
       "</g>\n",
       "<!-- 94 -->\n",
       "<g id=\"node95\" class=\"node\">\n",
       "<title>94</title>\n",
       "<polygon fill=\"none\" stroke=\"#000000\" points=\"2150,-612 2055,-612 2055,-576 2150,-576 2150,-612\"/>\n",
       "<text text-anchor=\"middle\" x=\"2102.5\" y=\"-590.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">grade &lt;= 73.5</text>\n",
       "</g>\n",
       "<!-- 92&#45;&gt;94 -->\n",
       "<g id=\"edge94\" class=\"edge\">\n",
       "<title>92&#45;&gt;94</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M2098.7617,-647.8314C2099.2965,-640.131 2099.9323,-630.9743 2100.5266,-622.4166\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"2104.02,-622.6317 2101.2213,-612.4133 2097.0368,-622.1467 2104.02,-622.6317\"/>\n",
       "</g>\n",
       "<!-- 95 -->\n",
       "<g id=\"node96\" class=\"node\">\n",
       "<title>95</title>\n",
       "<polygon fill=\"none\" stroke=\"#000000\" points=\"2043.5,-540 1963.5,-540 1963.5,-504 2043.5,-504 2043.5,-540\"/>\n",
       "<text text-anchor=\"middle\" x=\"2003.5\" y=\"-518.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">class = Yes</text>\n",
       "</g>\n",
       "<!-- 94&#45;&gt;95 -->\n",
       "<g id=\"edge95\" class=\"edge\">\n",
       "<title>94&#45;&gt;95</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M2077.5181,-575.8314C2065.2072,-566.8779 2050.1893,-555.9558 2036.9063,-546.2955\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"2038.6199,-543.214 2028.4739,-540.1628 2034.5027,-548.8752 2038.6199,-543.214\"/>\n",
       "</g>\n",
       "<!-- 96 -->\n",
       "<g id=\"node97\" class=\"node\">\n",
       "<title>96</title>\n",
       "<polygon fill=\"none\" stroke=\"#000000\" points=\"2157,-540 2062,-540 2062,-504 2157,-504 2157,-540\"/>\n",
       "<text text-anchor=\"middle\" x=\"2109.5\" y=\"-518.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">grade &lt;= 77.0</text>\n",
       "</g>\n",
       "<!-- 94&#45;&gt;96 -->\n",
       "<g id=\"edge96\" class=\"edge\">\n",
       "<title>94&#45;&gt;96</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M2104.2664,-575.8314C2105.015,-568.131 2105.9053,-558.9743 2106.7373,-550.4166\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"2110.2256,-550.7051 2107.7098,-540.4133 2103.2585,-550.0276 2110.2256,-550.7051\"/>\n",
       "</g>\n",
       "<!-- 97 -->\n",
       "<g id=\"node98\" class=\"node\">\n",
       "<title>97</title>\n",
       "<polygon fill=\"none\" stroke=\"#000000\" points=\"2100.5,-468 2020.5,-468 2020.5,-432 2100.5,-432 2100.5,-468\"/>\n",
       "<text text-anchor=\"middle\" x=\"2060.5\" y=\"-446.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">class = Yes</text>\n",
       "</g>\n",
       "<!-- 96&#45;&gt;97 -->\n",
       "<g id=\"edge97\" class=\"edge\">\n",
       "<title>96&#45;&gt;97</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M2097.1352,-503.8314C2091.5491,-495.6232 2084.837,-485.7606 2078.6928,-476.7323\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"2081.551,-474.7112 2073.0313,-468.4133 2075.764,-478.6496 2081.551,-474.7112\"/>\n",
       "</g>\n",
       "<!-- 98 -->\n",
       "<g id=\"node99\" class=\"node\">\n",
       "<title>98</title>\n",
       "<polygon fill=\"none\" stroke=\"#000000\" points=\"2198.5,-468 2118.5,-468 2118.5,-432 2198.5,-432 2198.5,-468\"/>\n",
       "<text text-anchor=\"middle\" x=\"2158.5\" y=\"-446.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">class = Yes</text>\n",
       "</g>\n",
       "<!-- 96&#45;&gt;98 -->\n",
       "<g id=\"edge98\" class=\"edge\">\n",
       "<title>96&#45;&gt;98</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M2121.8648,-503.8314C2127.4509,-495.6232 2134.163,-485.7606 2140.3072,-476.7323\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"2143.236,-478.6496 2145.9687,-468.4133 2137.449,-474.7112 2143.236,-478.6496\"/>\n",
       "</g>\n",
       "<!-- 100 -->\n",
       "<g id=\"node101\" class=\"node\">\n",
       "<title>100</title>\n",
       "<polygon fill=\"none\" stroke=\"#000000\" points=\"2248.5,-612 2168.5,-612 2168.5,-576 2248.5,-576 2248.5,-612\"/>\n",
       "<text text-anchor=\"middle\" x=\"2208.5\" y=\"-590.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">class = Yes</text>\n",
       "</g>\n",
       "<!-- 99&#45;&gt;100 -->\n",
       "<g id=\"edge100\" class=\"edge\">\n",
       "<title>99&#45;&gt;100</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M2209.9953,-647.8314C2209.7814,-640.131 2209.5271,-630.9743 2209.2894,-622.4166\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"2212.7879,-622.3122 2209.0115,-612.4133 2205.7906,-622.5066 2212.7879,-622.3122\"/>\n",
       "</g>\n",
       "<!-- 101 -->\n",
       "<g id=\"node102\" class=\"node\">\n",
       "<title>101</title>\n",
       "<polygon fill=\"none\" stroke=\"#000000\" points=\"2362,-612 2267,-612 2267,-576 2362,-576 2362,-612\"/>\n",
       "<text text-anchor=\"middle\" x=\"2314.5\" y=\"-590.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">grade &lt;= 82.5</text>\n",
       "</g>\n",
       "<!-- 99&#45;&gt;101 -->\n",
       "<g id=\"edge101\" class=\"edge\">\n",
       "<title>99&#45;&gt;101</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M2236.7436,-647.8314C2249.7995,-638.7927 2265.7535,-627.7476 2279.8047,-618.0198\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"2282.0351,-620.7326 2288.2648,-612.1628 2278.0506,-614.9773 2282.0351,-620.7326\"/>\n",
       "</g>\n",
       "<!-- 102 -->\n",
       "<g id=\"node103\" class=\"node\">\n",
       "<title>102</title>\n",
       "<polygon fill=\"none\" stroke=\"#000000\" points=\"2261.5,-540 2185.5,-540 2185.5,-504 2261.5,-504 2261.5,-540\"/>\n",
       "<text text-anchor=\"middle\" x=\"2223.5\" y=\"-518.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">class = No</text>\n",
       "</g>\n",
       "<!-- 101&#45;&gt;102 -->\n",
       "<g id=\"edge102\" class=\"edge\">\n",
       "<title>101&#45;&gt;102</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M2291.5369,-575.8314C2280.3285,-566.9632 2266.6791,-556.1637 2254.5561,-546.5718\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"2256.4697,-543.6229 2246.4558,-540.1628 2252.1263,-549.1125 2256.4697,-543.6229\"/>\n",
       "</g>\n",
       "<!-- 103 -->\n",
       "<g id=\"node104\" class=\"node\">\n",
       "<title>103</title>\n",
       "<polygon fill=\"none\" stroke=\"#000000\" points=\"2355.5,-540 2279.5,-540 2279.5,-504 2355.5,-504 2355.5,-540\"/>\n",
       "<text text-anchor=\"middle\" x=\"2317.5\" y=\"-518.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">class = No</text>\n",
       "</g>\n",
       "<!-- 101&#45;&gt;103 -->\n",
       "<g id=\"edge103\" class=\"edge\">\n",
       "<title>101&#45;&gt;103</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M2315.257,-575.8314C2315.5779,-568.131 2315.9594,-558.9743 2316.316,-550.4166\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"2319.8133,-550.5503 2316.7328,-540.4133 2312.8194,-550.2589 2319.8133,-550.5503\"/>\n",
       "</g>\n",
       "<!-- 105 -->\n",
       "<g id=\"node106\" class=\"node\">\n",
       "<title>105</title>\n",
       "<polygon fill=\"none\" stroke=\"#000000\" points=\"2358.5,-684 2278.5,-684 2278.5,-648 2358.5,-648 2358.5,-684\"/>\n",
       "<text text-anchor=\"middle\" x=\"2318.5\" y=\"-662.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">class = Yes</text>\n",
       "</g>\n",
       "<!-- 104&#45;&gt;105 -->\n",
       "<g id=\"edge105\" class=\"edge\">\n",
       "<title>104&#45;&gt;105</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M2318.5,-719.8314C2318.5,-712.131 2318.5,-702.9743 2318.5,-694.4166\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"2322.0001,-694.4132 2318.5,-684.4133 2315.0001,-694.4133 2322.0001,-694.4132\"/>\n",
       "</g>\n",
       "<!-- 106 -->\n",
       "<g id=\"node107\" class=\"node\">\n",
       "<title>106</title>\n",
       "<polygon fill=\"none\" stroke=\"#000000\" points=\"2475,-684 2380,-684 2380,-648 2475,-648 2475,-684\"/>\n",
       "<text text-anchor=\"middle\" x=\"2427.5\" y=\"-662.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">grade &lt;= 97.5</text>\n",
       "</g>\n",
       "<!-- 104&#45;&gt;106 -->\n",
       "<g id=\"edge106\" class=\"edge\">\n",
       "<title>104&#45;&gt;106</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M2346.0053,-719.8314C2359.818,-710.7074 2376.7256,-699.539 2391.5529,-689.7449\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"2393.5886,-692.5949 2400.0035,-684.1628 2389.7304,-686.7541 2393.5886,-692.5949\"/>\n",
       "</g>\n",
       "<!-- 107 -->\n",
       "<g id=\"node108\" class=\"node\">\n",
       "<title>107</title>\n",
       "<polygon fill=\"none\" stroke=\"#000000\" points=\"2475,-612 2380,-612 2380,-576 2475,-576 2475,-612\"/>\n",
       "<text text-anchor=\"middle\" x=\"2427.5\" y=\"-590.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">grade &lt;= 92.5</text>\n",
       "</g>\n",
       "<!-- 106&#45;&gt;107 -->\n",
       "<g id=\"edge107\" class=\"edge\">\n",
       "<title>106&#45;&gt;107</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M2427.5,-647.8314C2427.5,-640.131 2427.5,-630.9743 2427.5,-622.4166\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"2431.0001,-622.4132 2427.5,-612.4133 2424.0001,-622.4133 2431.0001,-622.4132\"/>\n",
       "</g>\n",
       "<!-- 112 -->\n",
       "<g id=\"node113\" class=\"node\">\n",
       "<title>112</title>\n",
       "<polygon fill=\"none\" stroke=\"#000000\" points=\"2573.5,-612 2493.5,-612 2493.5,-576 2573.5,-576 2573.5,-612\"/>\n",
       "<text text-anchor=\"middle\" x=\"2533.5\" y=\"-590.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">class = Yes</text>\n",
       "</g>\n",
       "<!-- 106&#45;&gt;112 -->\n",
       "<g id=\"edge112\" class=\"edge\">\n",
       "<title>106&#45;&gt;112</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M2454.2483,-647.8314C2467.5553,-638.7927 2483.816,-627.7476 2498.1375,-618.0198\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"2500.4547,-620.677 2506.7603,-612.1628 2496.5215,-614.8864 2500.4547,-620.677\"/>\n",
       "</g>\n",
       "<!-- 108 -->\n",
       "<g id=\"node109\" class=\"node\">\n",
       "<title>108</title>\n",
       "<polygon fill=\"none\" stroke=\"#000000\" points=\"2473,-540 2378,-540 2378,-504 2473,-504 2473,-540\"/>\n",
       "<text text-anchor=\"middle\" x=\"2425.5\" y=\"-518.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">grade &lt;= 89.0</text>\n",
       "</g>\n",
       "<!-- 107&#45;&gt;108 -->\n",
       "<g id=\"edge108\" class=\"edge\">\n",
       "<title>107&#45;&gt;108</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M2426.9953,-575.8314C2426.7814,-568.131 2426.5271,-558.9743 2426.2894,-550.4166\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"2429.7879,-550.3122 2426.0115,-540.4133 2422.7906,-550.5066 2429.7879,-550.3122\"/>\n",
       "</g>\n",
       "<!-- 111 -->\n",
       "<g id=\"node112\" class=\"node\">\n",
       "<title>111</title>\n",
       "<polygon fill=\"none\" stroke=\"#000000\" points=\"2571.5,-540 2491.5,-540 2491.5,-504 2571.5,-504 2571.5,-540\"/>\n",
       "<text text-anchor=\"middle\" x=\"2531.5\" y=\"-518.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">class = Yes</text>\n",
       "</g>\n",
       "<!-- 107&#45;&gt;111 -->\n",
       "<g id=\"edge111\" class=\"edge\">\n",
       "<title>107&#45;&gt;111</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M2453.7436,-575.8314C2466.7995,-566.7927 2482.7535,-555.7476 2496.8047,-546.0198\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"2499.0351,-548.7326 2505.2648,-540.1628 2495.0506,-542.9773 2499.0351,-548.7326\"/>\n",
       "</g>\n",
       "<!-- 109 -->\n",
       "<g id=\"node110\" class=\"node\">\n",
       "<title>109</title>\n",
       "<polygon fill=\"none\" stroke=\"#000000\" points=\"2415.5,-468 2339.5,-468 2339.5,-432 2415.5,-432 2415.5,-468\"/>\n",
       "<text text-anchor=\"middle\" x=\"2377.5\" y=\"-446.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">class = No</text>\n",
       "</g>\n",
       "<!-- 108&#45;&gt;109 -->\n",
       "<g id=\"edge109\" class=\"edge\">\n",
       "<title>108&#45;&gt;109</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M2413.3876,-503.8314C2407.9719,-495.7079 2401.4758,-485.9637 2395.5079,-477.0118\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"2398.2347,-474.7923 2389.7755,-468.4133 2392.4104,-478.6753 2398.2347,-474.7923\"/>\n",
       "</g>\n",
       "<!-- 110 -->\n",
       "<g id=\"node111\" class=\"node\">\n",
       "<title>110</title>\n",
       "<polygon fill=\"none\" stroke=\"#000000\" points=\"2513.5,-468 2433.5,-468 2433.5,-432 2513.5,-432 2513.5,-468\"/>\n",
       "<text text-anchor=\"middle\" x=\"2473.5\" y=\"-446.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">class = Yes</text>\n",
       "</g>\n",
       "<!-- 108&#45;&gt;110 -->\n",
       "<g id=\"edge110\" class=\"edge\">\n",
       "<title>108&#45;&gt;110</title>\n",
       "<path fill=\"none\" stroke=\"#000000\" d=\"M2437.6124,-503.8314C2443.0281,-495.7079 2449.5242,-485.9637 2455.4921,-477.0118\"/>\n",
       "<polygon fill=\"#000000\" stroke=\"#000000\" points=\"2458.5896,-478.6753 2461.2245,-468.4133 2452.7653,-474.7923 2458.5896,-478.6753\"/>\n",
       "</g>\n",
       "</g>\n",
       "</svg>\n"
      ],
      "text/plain": [
       "<graphviz.files.Source at 0x7fd725eda220>"
      ]
     },
     "execution_count": 30,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "display_tree(df.columns[:-1], tree)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plot_classifier(X, y, tree, ticks=True);\n",
    "plt.xlabel(\"Meat consumption (% days)\");\n",
    "plt.ylabel(\"Expected grade (%)\");"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.805"
      ]
     },
     "execution_count": 32,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "tree.score(X, y)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The reason it's not getting 100% accuracy: instances of duplicated features"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>meat</th>\n",
       "      <th>grade</th>\n",
       "      <th>cilantro</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>19</th>\n",
       "      <td>0.0</td>\n",
       "      <td>80</td>\n",
       "      <td>Yes</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>62</th>\n",
       "      <td>0.0</td>\n",
       "      <td>80</td>\n",
       "      <td>Yes</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>100</th>\n",
       "      <td>0.0</td>\n",
       "      <td>80</td>\n",
       "      <td>Yes</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>143</th>\n",
       "      <td>0.0</td>\n",
       "      <td>90</td>\n",
       "      <td>Yes</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>170</th>\n",
       "      <td>0.0</td>\n",
       "      <td>90</td>\n",
       "      <td>Yes</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>198</th>\n",
       "      <td>0.0</td>\n",
       "      <td>90</td>\n",
       "      <td>Yes</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>69</th>\n",
       "      <td>14.0</td>\n",
       "      <td>70</td>\n",
       "      <td>Yes</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>130</th>\n",
       "      <td>14.0</td>\n",
       "      <td>70</td>\n",
       "      <td>Yes</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>31</th>\n",
       "      <td>28.0</td>\n",
       "      <td>85</td>\n",
       "      <td>No</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>162</th>\n",
       "      <td>28.0</td>\n",
       "      <td>85</td>\n",
       "      <td>No</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>178</th>\n",
       "      <td>28.0</td>\n",
       "      <td>85</td>\n",
       "      <td>Yes</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>42.0</td>\n",
       "      <td>90</td>\n",
       "      <td>Yes</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>199</th>\n",
       "      <td>42.0</td>\n",
       "      <td>90</td>\n",
       "      <td>Yes</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>145</th>\n",
       "      <td>43.0</td>\n",
       "      <td>80</td>\n",
       "      <td>Yes</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>158</th>\n",
       "      <td>43.0</td>\n",
       "      <td>80</td>\n",
       "      <td>Yes</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>179</th>\n",
       "      <td>43.0</td>\n",
       "      <td>85</td>\n",
       "      <td>No</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>147</th>\n",
       "      <td>43.0</td>\n",
       "      <td>85</td>\n",
       "      <td>Yes</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>150</th>\n",
       "      <td>43.0</td>\n",
       "      <td>85</td>\n",
       "      <td>Yes</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>88</th>\n",
       "      <td>50.0</td>\n",
       "      <td>80</td>\n",
       "      <td>No</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>51</th>\n",
       "      <td>50.0</td>\n",
       "      <td>80</td>\n",
       "      <td>Yes</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "     meat  grade cilantro\n",
       "19    0.0     80      Yes\n",
       "62    0.0     80      Yes\n",
       "100   0.0     80      Yes\n",
       "143   0.0     90      Yes\n",
       "170   0.0     90      Yes\n",
       "198   0.0     90      Yes\n",
       "69   14.0     70      Yes\n",
       "130  14.0     70      Yes\n",
       "31   28.0     85       No\n",
       "162  28.0     85       No\n",
       "178  28.0     85      Yes\n",
       "0    42.0     90      Yes\n",
       "199  42.0     90      Yes\n",
       "145  43.0     80      Yes\n",
       "158  43.0     80      Yes\n",
       "179  43.0     85       No\n",
       "147  43.0     85      Yes\n",
       "150  43.0     85      Yes\n",
       "88   50.0     80       No\n",
       "51   50.0     80      Yes"
      ]
     },
     "execution_count": 33,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# it's OK if you don't understand this line\n",
    "df.loc[df.duplicated(subset=df.columns[:-1], keep=False)].sort_values(by=df.columns.values.tolist()).head(20)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "If we remove the \"duplicates\" (cases where X is the same, not y) then we can get 100% accuracy:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {},
   "outputs": [],
   "source": [
    "# it's OK if you don't understand this line\n",
    "df_nodup = df.sort_values(by=\"cilantro\").drop_duplicates(subset=df.columns[:-1]).reset_index(drop=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(95, 3)"
      ]
     },
     "execution_count": 36,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_nodup.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {},
   "outputs": [],
   "source": [
    "X_nodup = df_nodup.iloc[:,:2]\n",
    "y_nodup = df_nodup.iloc[:,-1]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {},
   "outputs": [],
   "source": [
    "tree_nodup = DecisionTreeClassifier() # default is max_depth=None"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {},
   "outputs": [],
   "source": [
    "tree_nodup.fit(X_nodup, y_nodup);"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "1.0"
      ]
     },
     "execution_count": 40,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "tree_nodup.score(X_nodup, y_nodup)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plot_classifier(X_nodup, y_nodup, tree_nodup, ticks=True);\n",
    "plt.xlabel(\"Meat consumption (% days)\");\n",
    "plt.ylabel(\"Expected grade (%)\");"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Note: one would not actually remove the duplicates in a real scenario. This is just for illustration purposes."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Break (5 mins)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## True/False questions (15 min)\n",
    "\n",
    "For each of the following, answer with `fit` or `predict`:\n",
    "\n",
    "1. At least for decision trees, this is where most of the hard work is done.\n",
    "2. Only takes `X` as an argument.\n",
    "3. In scikit-learn, we can ignore its output.\n",
    "4. Is called first (before the other one).\n",
    "\n",
    "<br><br><br><br><br><br>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "##  ML model parameters and hyperparameters (5 mins)\n",
    "\n",
    "- When you call `fit`, a bunch of values get set, like the split variables and split thresholds. \n",
    "- These are called **parameters**.\n",
    "- But even before calling `fit` on a specific data set, we can set some \"knobs\" that control the learning, e.g. `max_depth`.\n",
    "- These are called **hyperparameters**."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "In scikit-learn, hyperparameters are set in the constructor:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "tree = DecisionTreeClassifier(max_depth=3) \n",
    "tree.fit(X, y);"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Here, `max_depth` is a hyperparameter. There are many, many more! See [here](https://scikit-learn.org/stable/modules/generated/sklearn.tree.DecisionTreeClassifier.html).\n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "To summarize:\n",
    "\n",
    "- **parameters** are automatically learned by the algorithm during training (`fit`)\n",
    "- **hyperparameters** are specified by the human, before `fit`, based on:\n",
    "    - expert knowledge\n",
    "    - heuristics, or \n",
    "    - systematic/automated optimization (more on that later on)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Overfitting (15 mins)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Important question: how does accuracy change vs. max_depth?"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "metadata": {
    "jupyter": {
     "source_hidden": true
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# it would be good to understand this code, but not that urgent\n",
    "# I am using a list comprehension but you might find it easier to understand with a `for` loop - post on Piazza for more info\n",
    "max_depths = np.arange(1, 18)\n",
    "scores = [DecisionTreeClassifier(max_depth=max_depth).fit(X_nodup, y_nodup).score(X_nodup, y_nodup) for max_depth in max_depths]\n",
    "plt.plot(max_depths, scores);\n",
    "plt.xlabel(\"max depth\");\n",
    "plt.ylabel(\"accuracy score\");"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "- Why not just use a very deep decision tree for every supervised learning problem and get super high accuracy?\n",
    "- Well, the goal of supervised learning is to predict unseen/new data...\n",
    "  - The above decision tree has 100% accuracy on the training data **where we already know the answer**.\n",
    "  - It perfectly labels the data we used to make the tree...\n",
    "  - But we want to know how our model performs on data not used in training.\n",
    "  - We will split our original dataset into two parts, one for \"training\" and one for \"testing\"."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 55,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.model_selection import train_test_split"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 56,
   "metadata": {},
   "outputs": [],
   "source": [
    "df_train, df_test = train_test_split(df_nodup)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 75,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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ddddx0MPPcSll17KAw88wMqVK7nxxhuZO3cuP/74I263mzfeeIMrr7ySm2++mb333pvi4mJmz55dTfFEE1UqiqIoQcy/8eGtCqUSX1EJ8298uEGVSqdOnXjwwQc555xz8Hg8/PLLL7jdbpYsWcIDDzzALbfcUiWr44477siIESP49NNPOeKII5g2bRoDBgyo0uaggw6Kqcw6/aUoihJE8fLVdSqPJWeffTY5OTkcccQR9O/fH4CJEyfi9/s5+eSTqaio2LoNHTqUjIwMvv32WwB23313Zs2axSWXXMKkSZMoKop2QPnqqFJRFEUJwtslp07lsSYxMZHExMSt39etWwfADjvsgMfjqbLl5eWxYcMGAE477TT+85//MH36dMaNG0d2djZHHXUUS5YsiZmsOv2lKIoSxE53XlFlTQXAnZLMTndeEUepttG6dWsAvvrqK7KyssLWiwjnnXce5513Hps2beKrr77iyiuv5Pjjj2f69GjnVrSoUlEURQmict1k/o0PU7x8Nd4uOex05xUNup5SE/vvvz8ul4tly5ax//77R7RPVlbWVmXy7LPPxkw2VSqKoigh6HTioY1GiQTTq1cvrr32Wi6++GLmz5/PyJEjSU5OZvny5UycOJGzzz6b/fbbj3PPPZf09HSGDRtGu3btWLBgAa+99hpjx46NmWyqVBRFUZogd999N3369OGpp57iqaeeQkTo0qULo0ePpnfv3gAMHz6cl19+mddee40tW7bQsWNHTjnlFG677baYySU1pJ9vEQwZMsTMnDkz3mIoirKd/Pnnn/Tp0yfeYjQLaruWIvKLMWZIqDq1/lIURVGihioVRVEUJWromsp24PcbZvy2iR9mrCctNYEDR3ega6eUeIulKIoSN1Sp1BOfz3DD3fP4dfYmikv8JLjh3U9WcvVFvTlgVId4i6coihIXdPqrnnz30/qtCgWgwgelZX4eeHohRUUVcZZOURQlPqhSqScTv123VaEEkuAWfp2zueEFUhSFlm7NGg229xqqUqknSYnhL12iRy+rojQ0Ho+H4uLieIvR5CkuLsbj8dR7f3361ZNDxuaQnFT98okIu/bPbHiBFKWF065dO1auXElRUZGOWOqBMYaioiJWrlxJu3bt6n0cXaivJ4P7Z3LsYZ1555MVuARcLgHgvpv64dGRiqI0OBkZGQCsWrWK8vLyOEvT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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "scatter = plt.scatter(df_train[\"meat\"], df_train[\"grade\"], c=df_train[\"cilantro\"]==\"Yes\", cmap=plt.cm.coolwarm);\n",
    "plt.xlabel(\"Meat consumption (% days)\");\n",
    "plt.ylabel(\"Expected grade (%)\");\n",
    "plt.legend(scatter.legend_elements()[0], [\"No\", \"Yes\"]);"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 76,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "scatter = plt.scatter(df_test[\"meat\"], df_test[\"grade\"], c=df_test[\"cilantro\"]==\"Yes\", cmap=plt.cm.coolwarm);\n",
    "plt.xlabel(\"Meat consumption (% days)\");\n",
    "plt.ylabel(\"Expected grade (%)\");\n",
    "plt.xlim((0,100));\n",
    "plt.ylim((0,100));\n",
    "plt.legend(scatter.legend_elements()[0], [\"No\", \"Yes\"]);"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Summary\n",
    "\n",
    "- Cilantro dataset: predict whether a CPSC 330 student likes cilantro (yes/no) from their meat consumption and expected grade (numeric features)\n",
    "- Decision trees: a classifier that makes predictions by sequentially looking at features and checking whether they are above/below a threshold\n",
    "- Decision trees learn axis-aligned decision boundaries (vertical and horizontal lines with 2 features)\n",
    "- `fit(X,y)`: train classifier from training data\n",
    "- `predict(X)`: make one or more predictions given a trained classifier\n",
    "- `score(X,y)`: makes predictions with `predict()` and compares them to the true answers passed in as `y`\n",
    "- Classifiers have hyperparameters, which are set before calling `fit`\n",
    "  - Often set by humans, but not always (see later lecture)\n",
    "- `max_depth` is a hyperparameter of `DecisionTreeClassifier` that controls the maximum depth of the learned tree  \n",
    "- larger `max_depth` -> larger accuracy on training data\n",
    "- `DecisionTreeClassifier` with `max_depth=None` not getting 100% training accuracy when two students have the same features but different target values"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.5"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
